꾸준히 합시다

백준 파이썬 1924번: 2007년 본문

코딩 테스트 문제 풀이

백준 파이썬 1924번: 2007년

tturbo0824 2021. 3. 5. 23:06

www.acmicpc.net/problem/1924

 

1924번: 2007년

첫째 줄에 빈 칸을 사이에 두고 x(1 ≤ x ≤ 12)와 y(1 ≤ y ≤ 31)이 주어진다. 참고로 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 2월은 28일까지 있다.

www.acmicpc.net

문제 유형: 구현

 

# Solution 1

x, y = map(int, input().split())

months = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
days = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT']

day = 0

for i in range(1, x):
    day += months[i - 1]

day += y

print(days[day % 7])

복잡하게 생각할 필요 없이 주어진 대로 풀면 맞힐 수 있는 문제다.

 

  1. 우선 해당 날이 그 년도의 몇 번째 날인지 계산한다. (예: 1월 1일-첫 번째날, 9월 2일-245번째 날)
  2. 그 수를 7로 나눈 나머지에 따라 요일을 결정한다.
  3. 2007년도의 경우 년도 첫 번째 날인 1월 1일을 기준으로 7로 나눈 나머지가 1인 날이 월요일이 된다.
Comments