[프로그래머스] 2016년 - level 1 (python,파이썬)

ggoggori_._·2021년 1월 5일
0

프로그래머스

목록 보기
5/7

문제는 위와 같다.

def solution(a, b):
    day = ['FRI','SAT','SUN','MON','TUE','WED','THU']
    day = day*55
    pattern = [0,31,29,31,30,31,30,31,31,30,31,30,31]
    
    answer = day[sum(pattern[:a]) + b-1]
    return answer

내가 푼 풀이는 위와 같다.

2016년 1월 1일이 금요일부터 시작하기 때문에 day 리스트의 시작을 FRI로 정했고, 55번 곱한 것은 그냥 리스트를 반복하기 위해서 곱했다.

pattern 리스트는 1월부터 12월까지의 일 수를 담은 리스트다.

2016년 a월 b일이 무슨 요일인지는 day[sum(pattern[:a]) + b-1] 코드를 통해서 구했다.
예를 들어 a = 3, b = 25가 주어졌다면 일수로는 총 31 + 29 +31 + 25 이다.
이를 앞서 FRI부터 시작하는 pattern 리스트에서 인덱싱하면 원하는 요일 값을 찾을 수 있다.
따라서 2016년 3월 25일의 요일을 구할 수 있다.

리스트에 대한 이해가 있다면 풀 수 있는 문제인 듯 하다.

0개의 댓글