본문 바로가기

알고리즘/백준 문제 풀이

[Python] 1924번 2007년

728x90

https://www.acmicpc.net/problem/1924

 

1924번: 2007년

첫째 줄에 빈 칸을 사이에 두고 x(1 ≤ x ≤ 12)와 y(1 ≤ y ≤ 31)이 주어진다. 참고로 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 2월은 28일까지 있다.

www.acmicpc.net


 

22/10/08

 

 

단순 구현 문제로, 파이썬의 datetime모듈을 사용했다.


 

문제 접근 방식:

 

 

파이썬의 datetime모듈에서 toordinal메서드를 활용하여 구현하였다.

 

이 메서드는 날짜를 입력받으면 1년 1월 1일로부터 그 날짜가 몇 일 지났는지를 반환하는 함수인데, 2007년 x월 y일이 2007년 1월 1일로부터 몇 일이 지났는가를 toordinal로 구한 뒤 그 숫자를 7로 나누어 요일을 구하도록 했다.


아래는 내가 위의 접근 방식과 같이 작성한 파이썬 코드이다. 더보기를 누르면 확인할 수 있다.

더보기
# 1924번 2007년
# 구현
'''
접근 방법:
datetime의 toordinal메서드를 활용한다
'''
from datetime import *
x, y = map(int, input().split())
week = {0: 'MON', 1: 'TUE', 2: 'WED', 3: 'THU',
        4: 'FRI', 5: 'SAT', 6: 'SUN'}
week_num = (date(2007, x, y).toordinal() - date(2007, 1, 1).toordinal()) % 7
print(week[week_num])