[프로그래머스] 2016년(Python)

알고리즘 저장소·2021년 2월 3일
0

프로그래머스

목록 보기
6/29
post-custom-banner

1. 요약

  • 2016년의 특정 날짜의 요일을 구하는 문제

2. 알고리즘

입력 값 a, b 출력 값 요일(e.g. 'SUN', 'MON')

1. 'FRI'~'THU'를 담는 리스트 day를 생성한다.
2. cnt를 0으로 초기화한다. 
3. 1부터 a-1까지 향하는 num에 대해, 4., 5., 6.을 수행한다.
4. num이 31일을 갖는 월이면 cnt와 31을 더하고 cnt에 저장한다.
5. num이 30일을 갖는 월이면 cnt와 30을 더하고 cnt에 저장한다.
6. num이 2일 때, cnt와 29를 더하고 cnt에 저장한다.
7. cnt와 b를 더하고 cnt에 저장한다.
8. cnt와 7을 나눈 나머지를 cnt에 저장한다.
9. day[cnt-1]를 반환한다.

3. 코드

day = ['FRI', 'SAT', 'SUN', 'MON', 'TUE', 'WED', 'THU']
d31 = [1,3,5,7,8,10,12]
d30 = [4,6,9,11]
d29 = [2]

def solution(a, b):
    answer = ''
    cnt = 0

    for num in range(1, a):
        if num in d31: cnt += 31
        elif num in d30: cnt += 30
        else: cnt += 29
    
    cnt += b
    cnt %= 7
    answer = day[cnt-1]

    return answer

post-custom-banner

0개의 댓글