1월 1일은 금요일이다. 특정 날짜에 무슨 요일인지 맞추는 프로그램을 만드세요. 올해는 윤년입니다.
어떻게 푸는지 간단하게 생각해 보았습니다. 1주일은 7일로 이루어져있기 때문에 지난 날짜 나누기 7을 하고 그 나머지를 이용해서 연산을 진행해주면 됩니다. 우선 간단하게 리스트를 만들어주었습니다.
요일을 담을 수 있는 리스트와 월별 몇일 있는지를 담는 리스트 입니다.
week = ['FRI','SAT','SUN','MON','TUE','WED','THU']
months = [31, 29, 31, 30, 31, 30,31 , 31, 30, 31, 30, 31]
다음과 같이 만들어 줍니다.
이제 1월 1일로부터 몇일이 지났는지 세어주면 됩니다.
d = 0
a -= 1
b -= 1
우선 다음과 같은 변수들을 만들어주었습니다. d는 총 몇일이 지났는지 담을 변수이고 a와 b는 월과 일을 담습니다. 1월 1일을 입력했을 때 연산이 진행되면 안되기 때문에 각각 -1을 해줍니다.
귀찮아서 변수명은 대충 지었습니다.
for i in range(a):
d += months[i]
d += b
d = d%7
연산도 간단 합니다. 4월이었으면 3월까지 몇일이 지났는지 세어주고 일도 추가해줍니다. 그러면 총 몇일이 지난지 알 수 있습니다. 이 수를 7로 나누어 주면 7 미만의 수가 나오게 됩니다. 이를 이용하여 날짜를 입력해주면 됩니다.
answer = week[d]
다음과 같이 리스트에 입력했던 요일을 이용해주는 것 입니다. 전체 코드를 보자면 다음과 같습니다.
def solution(a, b):
week = ['FRI','SAT','SUN','MON','TUE','WED','THU']
months = [31, 29, 31, 30, 31, 30,31 , 31, 30, 31, 30, 31]
d = 0
a -= 1
b -= 1
for i in range(a):
d += months[i]
d += b
d = d%7
answer = week[d]
return answer
어려운 문제는 아니지만 도움이 됐길 바라며 글을 마치겠습니다 😀