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])