문제
2009년의 날짜(일, 월)가 주어질 때, 해당 날짜의 요일을 영어로 출력하라.
입력
일(D)과 월(M)이 공백으로 구분되어 주어진다.
출력
해당 날짜의 요일을 영어(Monday, Tuesday, ...)로 출력한다.
예제
| 입력 | 출력 |
|---|---|
1 1 | Thursday |
17 1 | Saturday |
풀이
Python의 datetime 라이브러리를 사용하여 2009년 해당 날짜의 요일을 구한다.
- 일(D)과 월(M)을 입력받는다
datetime(year=2009, month=M, day=D)로 날짜 객체를 생성한다.weekday()메서드로 요일 인덱스를 얻는다 (월요일=0, 일요일=6)- 미리 정의한 요일 리스트에서 해당 인덱스의 영어 요일명을 출력한다
핵심 아이디어: datetime 라이브러리의 weekday() 메서드를 활용하면 날짜 계산 없이 간단히 요일을 구할 수 있다.
코드
from datetime import datetime
def year_2009(D, M):
weekday_list = [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday",
"Sunday",
]
return weekday_list[datetime(year=2009, month=M, day=D).weekday()]
if __name__ == "__main__":
D, M = map(int, input().split())
print(year_2009(D, M))복잡도
- 시간: O(1) — 단일 날짜 계산
- 공간: O(1) — 고정 크기 요일 리스트