티스토리 뷰

Code/BackJoon

백준 1924번: 2007년 [Python]

Tree._.River 2022. 1. 24. 17:48

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

내가 작성한 코드

days = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
week = 0

x, y = input().split()

x = int(x)
y = int(y)

for i in range(x):
   week += days[i]

week += y

if(week % 7 == 1):
    print("MON")
elif(week % 7 == 2):
    print("TUE")
elif(week % 7 == 3):
    print("WED")
elif (week % 7 == 4):
    print("THU")
elif(week % 7 == 5):
    print("FRI")
elif(week % 7 == 6):
    print("SAT")
else:
    print("SUN")

 

풀이 방법

1. 요일은 일수의 합에 나머지 값이다.

2. week 값은 x 달 이전의 days를 합한 값이다. 해당 week 값에 y값을 더하면 원하는 요일을 구할 수 있다.

   ㄴ 2월 1일은 1월의 일수 days[1] 값인 " 31 "에 y값 " 1 "을 더한 값이다. 즉 week = 32
       요일은 7일로 구성돼 있으므로 " 32%7 "의 값은 4이다. 
       1월 1일은 MON 부터 시작한다고 돼 있으므로 4일이 지난 요일은 THU가 된다.

3. 요일은 7일로 구성되어 있다. 1월 1일이 MON부터 시작이므로 week%7 나머지 값을 통해 요일을 알 수 있다.

    ㄴ 2월 1일의 week = 32, " 32%7 "의 값은 4이다. 
        1월 1일은 MON 부터 시작한다고 돼 있으므로 4일이 지난 요일은 THU가 된다.

 

댓글