알고리즘 연습/구현, 문자열

[🥉1 / 백준 1924 / 파이썬] 2007년

김세진 2021. 7. 9. 17:43
반응형

 

 

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

 

문제

오늘은 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

예제 출력 1 

MON

예제 입력 2 

3 14

예제 출력 2 

WED

예제 입력 3 

9 2

예제 출력 3 

SUN

예제 입력 4 

12 25

예제 출력 4 

TUE

 

 

풀이

 

주어진 월, 일을 이용하여 요일을 구하는 문제이다.

 

코딩을 배우기 막 시작했을 때, if else 문으로 고생하며 만들었던 기억이 있다.

 

하지만 그렇게 하기엔 너무 번거로우니 현재 날짜까지 지나온 일 수를 모두 계산하여

 

이를 7로 나눈 나머지로 요일을 계산해주자.

 

x,y = map(int,input().split())
month = [31,28,31,30,31,30,31,31,30,31,30,31]
day = ["MON","TUE","WED","THU","FRI","SAT","SUN"]
y += sum(month[:x-1])
print(day[y%7 - 1])
반응형