문제 1924 2007년
문제
오늘은 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 1 | cs |
예제 출력 1
코드
x,y = map(int, input().split()) day = 0 for i in range(1,x): if i in [1,3,5,7,8,10,12]: day += 31 elif i in [4,6,9,11]: day += 30 else: day += 28 dayy = (day+y)%7 def f(x): return {0: 'SUN', 1: 'MON', 2: 'TUE', 3: 'WED', 4: 'THU', 5: 'FRI', 6: 'SAT'}[x] print(f(dayy)) | cs |
코드 설명
x월을 확인한후 1월부터 x-1월까지의 일수를 day에 더하면,
day에는 우리가 찾을 x월 y일이 일로만 나타낸 값이 저장된다.
day를 y를 추가적으로 더하고 7로 나눈 값의 나머지를 dayy에 저장한다.
1월 1일이 월요일부터 시작하므로 0:일요일, 1:월요일, 2:화요일, 3:수요일, 4:목요일, 5:금요일, 6:토요일이 된다.
나머지 값을 가지고 dictionary를 활용해 switch-case문처럼 만들어주었습니다.
알고리즘 분류
- 구현
반응형
'코딩테스트 > Baekjoon' 카테고리의 다른 글
(Python 3) 백준 알고리즘 11720 숫자의 합 (0) | 2019.01.11 |
---|---|
(Python 3) 백준 알고리즘 8393 합 (1) | 2019.01.11 |
(Python 3) 백준 알고리즘 2441 별 찍기 - 4 (0) | 2019.01.10 |
(Python 3) 백준 알고리즘 2440 별 찍기 - 3 (0) | 2019.01.10 |
(Python 3) 백준 알고리즘 2439 별 찍기 - 2 (0) | 2019.01.10 |