2007년

문제번호 : 1924 번

문제링크 : https://www.acmicpc.net/problem/1924


문제

오늘은 2007년 1월 1일 월요일이다. 그렇다면 2007년 x월 y일은 무슨 요일일까? 이를 알아내는 프로그램을 작성하시오.

입력

첫째 줄에 빈 칸을 사이에 두고 x(1≤x≤12)와 y(1≤y≤31)이 주어진다. 참고로 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 2월은 28일까지 있다.

출력

첫째 줄에 x월 y일이 무슨 요일인지에 따라 SUN, MON, TUE, WED, THU, FRI, SAT중 하나를 출력한다.

예제

입력

1 1

출력

MON

풀이

  1. week[]에는 출력될 값을 담아놓고, day[]에는 각 달의 일 수를 초기값으로 넣어준다.

  2. 월과 일을 입력받아 반복문으로 x-1월까지의 총 일수를 num이라는 변수에 더해준다.

  3. x월의 일 수인 y를 num에 더해준 후 그것을 7으로 나눈 결과값을 result변수에 넣어준다

  4. week의 인덱스값result을 출력해 주면 끝

코드

#include<iostream>
#include <string>

using namespace std;
int main(){

string week[] = { "SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT" };//0,1,2,3,4,5,6
int day[] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
int x, y, result,num=0;

cin >> x >> y;
for (int i = 1; i<x; i++){
num +=day[i];
}
result = (num+y) % 7;

cout << week[result] << '\n';
}

'Algorithm > 백준 BOJ' 카테고리의 다른 글

[2156] 포도주 시식  (0) 2018.05.23
[2579] 계단오르기  (0) 2018.05.23
[1260] DFS와 BFS  (0) 2018.05.11
[1966]프린터 큐  (0) 2018.05.11
[9012] 괄호  (0) 2018.05.01

+ Recent posts