본문 바로가기
Algorithm/프로그래머스

[프로그래머스] Lv1 - 2016년 (파이썬)

by 2HS 2022. 3. 19.

https://programmers.co.kr/learn/courses/30/lessons/12901

 

코딩테스트 연습 - 2016년

2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까

programmers.co.kr

 

month_day = {1: 31, 2: 29, 3: 31, 4: 30, 5: 31, 6: 30,
             7: 31, 8: 31, 9: 30, 10: 31, 11: 30, 12: 31}
weeks = {0: 'FRI', 1: 'SAT', 2: 'SUN', 3: 'MON', 4: 'TUE', 5: 'WED', 6: 'THU'}


def solution(a, b):
    period = 0
    for k in range(1, a):
        period += month_day[k]
    period += b
    return 'THU'if period % 7-1 == -1 else weeks[period % 7-1]

 

풀이
1. 딕셔너리를 정의 - month_day : 월별 날짜 수, weeks : 금요일 기준으로 요일을 나열
2. 목표 날짜까지의 기간을 계산
3. 기간%7-1 이 -1이면 THU 아니면 weeks[기간%7-1] 반환