https://programmers.co.kr/learn/courses/30/lessons/12901
2016년 1월 1일은 금요일이다. 2016년 a월 b일은 무슨 요일일까?
예를 들어 a=5, b=24 이면 "TUE"를 반환해야한다.
*2016년은 윤년 (2월이 29일까지!)
def solution(a, b):
day = ["FRI","SAT","SUN","MON","TUE","WED","THU"]
last = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
return day[(sum(last[0:a-1])+b)%7-1]
1월 1일이 금요일이니 요일을 금요일부터 시작해서 리스트로 정의해놓고,
2016년 각 달의 일수를 리스트로 정의해놨다.
월로 주어진 a월 이전까지의 일수를 모두 더하고, b인 일을 더해준다. 그리고 이를 요일 갯수인 7로 나누고 1을 빼줬다. 계산된 수를 day 리스트의 인덱스로 넣어줬다.
(이게 무슨 설명.....?)
설명이 좋지 않으니 예를 들어 설명해보자면,
a=5, b=24이면 4(a-1)월까지의 일수를 모두 더하고 거기에 b인 24를 더해준다.
그리고 요일을 계산하기 위해서 7의 나머지 계산을 하고 인덱스 특성상 -1을 해준다.
이 수를 day의 인덱스로 넣어줌으로써 원하는 값을 구할 수 있다.