Programming/백준
[브론즈 1] 백준 1924 - 2007년 (파이썬)
pental
2025. 5. 19. 16:02
https://www.acmicpc.net/problem/1924
풀이
- 2007년 1월 1일은 월요일 (MON).
- 입력: x y (월, 일)
- 출력: 2007년 x월 y일의 요일
months = {
1 : 31,
2 : 28,
...
12 : 31
}
- 2007년은 평년이므로 2월은 28일.
- 각 월의 일수를 딕셔너리로 저장.
days = ["MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN"]
- 2007년 1월 1일이 월요일이므로, 인덱스 0 = “MON”으로 배열 정의.
current = sum(months[i] for i in range(1, x))
- 1월부터 (x - 1)월까지 총 일수를 더함.
- 예: x = 3 (3월) → 1월 + 2월 = 31 + 28 = 59
current += y
- 해당 월의 일 수 y일을 더함.
- 예: 3월 14일이면 59 + 14 = 73일째
print(days[(current - 1) % 7])
- current - 1을 하는 이유
- 1월 1일이 MON이므로 current = 1일 때 → index 0이어야 함.
- 따라서 current - 1로 보정.
- % 7로 0~6 사이의 값만 나오게 함.
코드
# 백준 1924 - 2007년
# 분류 : 시뮬레이션
months = {
1 : 31,
2 : 28,
3 : 31,
4 : 30,
5 : 31,
6 : 30,
7 : 31,
8 : 31,
9 : 30,
10 : 31,
11 : 30,
12 : 31
}
days = ["MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN"]
x, y = map(int, input().split())
current = sum(months[i] for i in range(1, x))
current += y
print(days[(current - 1) % 7])