알고리즘/프로그래머스
2016년 파이썬
을왕라
2020. 9. 1. 15:48
1. 문제

2016년이라는 년도를 주고 요일을 구하라는 문제다.
윤년이라고 친절하게 알려주었기 때문에 어렵지 않았다.
2. 풀이
내 풀이
def solution(a, b):
answer = ''
day = ["SUN","MON","TUE","WED","THU","FRI","SAT"]
month = [31,29,31,30,31,30,31,31,30,31,30,31]
return day[(sum(month[:a-1])+b) % 7-3]
사실 처음엔 month의 요소들도 if문으로 구하려고 하였지만 너무 어렵게 푸는 느낌?
그래서 day와 month를 리스트로 넣고 (튜플로 하면 더 좋을듯?)
a-1까지의 일수를 더하고
b를 더한 뒤
7로 나눈 나머지 값에 -3 or +4를 하여
day에서 요소를 리턴한다.
다른사람 풀이
import datetime
def getDayName(a,b):
t = 'MON TUE WED THU FRI SAT SUN'.split()
return t[datetime.datetime(2016, a, b).weekday()]
datetime이라는 함수를 가지고 ez하게 풀어냈다... 하긴 있으면 써야지
3. 배운 점
import datetime
1) datetime.date : 일반적인 날짜에 대한 클래스이며(Gregorian calendar 표시) 속성으로 year, month, day를 가진다.
2) date.weekday( ) : 월요일(0) 부터 일요일(6)까지 표시
3) date.isoweekday( ) : 월요일(1) 부터 일요일(7)까지 표시