문제
문제설명
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일같은 날짜는 주어지지 않습니다)
<입출력 예>
a | b | result |
5 | 24 | TUE |
접근
이 문제는 나머지 연산을 통해서 풀 수도 있지만, 날짜 모듈인 datetime를 이용하면 빠르게 풀 수 있다.
#1. datetime.date
이 클래스의 객체는 년월일 정보를 담고 있는 객체이다.
특정한 날짜의 객체를 만들려면 년, 월, 일을 전달해주면 되고, 오늘 날짜를 얻으려면 today() 를 이용한다.
>>> from datetime import date
>>> date(2019, 1, 31)
date.weekday() 는 요일 정보를 숫자로 반환해준다.
월요일이 0이고 순서대로 올라가 일요일이 6이다.
>>> from datetime import date
>>> date1 = date(2020, 1, 1)
>>> date1.weekday()
2 # 수요일
풀이
from datetime import date
def solution(a, b):
dayOfTheWeek = ['MON','TUE','WED','THU','FRI','SAT','SUN']
return dayOfTheWeek[date(2016, a, b).weekday()]
마침
질문은 언제나 환영입니다~
'알고리즘 > 연습문제' 카테고리의 다른 글
[프로그래머스] 예산 - 파이썬 (0) | 2020.11.24 |
---|---|
[프로그래머스] 소수 찾기 - 파이썬 (0) | 2020.11.24 |
[프로그래머스] 나누어 떨어지는 숫자 배열 - 파이썬 (0) | 2020.11.20 |
[프로그래머스] 하샤드 수 - 파이썬 (0) | 2020.11.20 |
[프로그래머스] 핸드폰 번호 가리기 - 파이썬 (0) | 2020.11.19 |
댓글