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

berry ·2021년 4월 27일
0

Algorithm

목록 보기
6/77

문제


내 풀이

처음엔
31일인 달 1,3,5,7,8,10,12
30일인 달 4,6,9,11
29일인 달 2
이렇게 나누어서

sum(month[:a-1])+b)

하려고 했으나, 너무 복잡해져서 pattern을 사용했다.

def solution(a,b):
    week = ['FRI','SAT','SUN','MON','TUE','WED','THU']
    month = [31,29,31,30,31,30,31,31,30,31,30,31]
    day = sum(month[:(a-1)])+(b-1)
    answer = week[day%len(week)]
    return answer
    
    

달력처럼 일요일부터 시작하는 주를 만들어
5를 더해줬어도 괜찮았겠지만
귀찮아서 그냥 week 순서를 바꿔줬다.

+++
만약 8월이라면,
month[7]번째까지 sum하고
다시 b-1을 더해준다.
answer에서도 그냥 7을 나누어줬으면 됐지만
노동날은 주4일이 됐으면 하는 바람이 있기 때문에


다른 풀이

import datetime

def getDayName(a,b):
    t = 'MON TUE WED THU FRI SAT SUN'.split()
    return t[datetime.datetime(2016, a, b).weekday()]

+++
datetime 함수 활용!
datetime
.weekday() 말고도 .now() 등 활용법이 다양하다.

profile
Engineer

0개의 댓글