https://programmers.co.kr/learn/courses/30/lessons/12901
해당 날짜가 무슨 요일이 찾아내는 문제입니다
(예: 2016년 1월 1일이 금요일일 때, 2016년 a월 b일은 무슨 요일인지).
caldendar 모듈을 사용해서 푸는 방법
today의 기본 값은 월요일~일요일까지 0, 1, 2, 3, 4, 5, 6 으로 구분지어져 있습니다.
즉 calendar.weekday(2016, 1, 1)의 경우 4가 되기 때문에 (실제 요일),
days[4] = "FRI"가 됩니다.
만약 2016년 1월 1일이 토요일이라고 가정을 하면
days =["TUE", "WED", "THU", "FRI", "SAT", "SUN", "MON"] 로 설정하여 월요일인 "MON"을 뒤로 가게 하고,
days[4] = "SAT" 으로 되게끔 해주시면 됩니다.
import calendar
def solution(a, b):
today = calendar.weekday(2016, a, b)
days =["MON", "TUE", "WED", "THU",
"FRI", "SAT", "SUN"]
return days[today]
solution(5, 24)
'''
'TUE'
'''
달과 요일별 list를 만들어서 푸는 방법
1. 달과 요일별 list를 만들어줍니다. 이때 달은 매달 실제로 존재하는 마지막 날짜를 넣고 [31, 29, 31, ...],
요일은 기준 년도 기준 1월 1일의 요일을 넣어줍니다 (2016이면 ['FRI', 'SAT', ...]).
기준 달 a까지의 총 지난 날짜를 더하고, b일을 더해줍니다 (1월 1일을 이미 계산하였기 때문에 여기에 1을 빼줍니다).
이후 총 요일 수인 7을 나누어 결과값을 구해줍니다.
def solution(a, b):
months = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
days = ['FRI', 'SAT', 'SUN', 'MON', 'TUE', 'WED', 'THU']
return days[(sum(months[:a-1])+b-1)%7]
solution(5, 24)
'''
'TUE'
'''
'Algorithm' 카테고리의 다른 글
[파이썬] 백준: 돌게임5 (0) | 2021.07.14 |
---|---|
[파이썬] 백준: 토너먼트 (0) | 2021.07.13 |
[파이썬] 백준 1475번: 방번호 (0) | 2021.07.07 |
[파이썬] 백준 1927번, 11279번, 11286번: 최소 힙, 최대 힙, 절대값 힙 (0) | 2021.07.06 |
[파이썬] 백준 1676번: 팩토리얼 0의 개수 (0) | 2021.07.05 |