Programmers / 21.03.03 2016

soohee·2021년 3월 16일
0

알고리즘

목록 보기
14/20

💜 문제 설명

문제설명

2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 SUN,MON,TUE,WED,THU,FRI,SAT입니다. 예를 들어 a=5, b=24라면 5월 24일은 화요일이므로 문자열 "TUE"를 반환하세요.

제한 조건

▪ 2016년은 윤년입니다.
▪ 2016년 a월 b일은 실제로 있는 날입니다. (13월 26일이나 2월 45일같은 날짜는 주어지지 않습니다)

입출력 예

abresult/
524"Tue"

💜 소스코드

def solution(a, b):
    sum = 0
    day = [31,29,31,30,31,30,31,31,30,31,30,31]
    date = ['FRI','SAT','SUN','MON','TUE','WED','THU']
    for i in range(a-1):
        sum += day[i]
    return date[(sum+b)%7 -1]

💜 내 띵킹띵킹

1월 1일이 금요일 이므로, 금요일부터 일주일을 순서대로 배열에 넣는다. 그리고 1월부터 12월까지의 달을 세서 마찬가지로 day 배열에 넣는다.
그 후, 해당 월-1 만큼 for문을 돌려 해당 월의 일을 추가해주고, 마지막으로 sum에 일을 더해서 일주일이 7일이므로 7로 나누어주고, 금요일부터 세었기 때문에 -1을 해주면 해당 날짜의 요일을 알 수 있게 된다!

profile
🐻‍❄️

0개의 댓글