이번 포스팅에서는 요일 구하는 문제를 풀어볼까합니다~!
(사실 한달이 며칠까지 있는지 매번 까먹어서 기록용으로 포스팅합니다🤣)
한달은 며칠까지 있을까?
사진 출저 - 스브스뉴스
1월 | 2월 | 3월 | 4월 | 5월 | 6월 | 7월 | 8월 | 9월 | 10월 | 11월 | 12월 |
---|---|---|---|---|---|---|---|---|---|---|---|
31일 | 28일 (윤년 29일) | 31일 | 30일 | 31일 | 30일 | 31일 | 31일 | 30일 | 31일 | 30일 | 31일 |
2월을 제외한 모든 달은 30일 또는 31일을 갖습니다.
윤년에는 법칙이 있습니다.
파이썬 코드로 구현하면 다음과 같습니다.
def get_day(year):
if year % 100 == 0 and year % 400 != 0:
return 28
elif year % 4 == 0:
return 29
return 0
문제 설명
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일같은 날짜는 주어지지 않습니다)
def solution(a, b):
day_list = ['SUN','MON','TUE','WED','THU','FRI','SAT']
day = 5
month_list = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
for i in range(1, a):
day += month_list[i-1]
day += b - 1
return day_list[day % 7]
month_list[0]
에 1월 1일이 포함되어 있으므로 1을 빼줍니다.