백준 온라인 저지(Baekjoon Online Judge) 1924번 문제 풀이
2007년
오늘은 2007년 1월 1일 월요일이다. 그렇다면 2007년 x월 y일은 무슨 요일일까? (1<=x<=12, 1<=y<=31)
입력 예시 |
출력 예시 |
1 1 |
MON |
풀이
1월 1일로부터 며칠이 지났지 구하면 된다.
구한 값의 7로 나눈 나머지가 0이라면 일요일, 1은 월요일, 2는 화요일, .. 6은 토요일이 된다.
ex) 1월 1일이 수요일이라면, 나머지가 0이라면 화요일, 1은 수요일, 2는 목요일, ... 6은 월요일이 된다.
■ 1월 ■ 2월 ■ 3월
정답
C
#include <stdio.h>
int main()
{
int x=0,y=0;
int total_day = 0;
int month_days[12]={31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
scanf("%d %d", &x, &y);
for(int i=1;i<x;i++) total_day+=month_days[i-1]; //
total_day+=y;
switch(total_day % 7){
case 0 : printf("SUN\n"); break;
case 1 : printf("MON\n"); break;
case 2 : printf("TUE\n"); break;
case 3 : printf("WED\n"); break;
case 4 : printf("THU\n"); break;
case 5 : printf("FRI\n"); break;
case 6 : printf("SAT\n"); break;
}
return 0;
}
날짜 계산
이 문제는 2007년 내에서 월과 일만 입력받기 때문에 윤년에 대한 처리를 하지 않아도 된다.
만약 년도를 같이 입력 받는다면, 윤년일 경우 2월을 28이 아닌 29로 계산해줘야 한다.
'문제풀이 > 백준 온라인 저지' 카테고리의 다른 글
백준 알고리즘 - 11721 (C) (0) | 2018.08.06 |
---|---|
백준 알고리즘 - 11720 (C) (3) | 2018.07.22 |
백준 알고리즘 - 2441 (C) (0) | 2018.07.01 |
백준 알고리즘 - 2440 (C) (0) | 2018.07.01 |
백준 알고리즘 - 2439 (C) (0) | 2018.07.01 |