본문으로 바로가기

백준 온라인 저지(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