728x90
https://www.acmicpc.net/problem/1308
22/09/16
간단한 구현 문제로, 프로그래밍 기초를 배우면 자주 접하는 윤년 판단 문제가 응용된 문제이다.
문제 접근 방식:
파이썬의 datetime모듈을 사용하여 구현하였다.
1000년을 넘어가면 'gg'를 출력해야 하므로 그 부분은 따로 처리를 먼저 해주었고, 나는 윤년 처리가 귀찮았기 때문에 datetime의 toordinal 메서드를 활용하였다.
이 메서드는 1년 1월 1일부터 입력된 date까지 누적된 날짜를 반환해주는 메서드인데, 이를 이용해 누적된 날짜의 차를 계산하면 그것이 바로 D-day날짜인 것이다.
윤년 판단을 따로 하지 않아도 굉장히 편하게 구할 수 있어서 유용한 함수라고 할 수 있겠다.
아래는 내가 위의 접근 방식과 같이 작성한 파이썬 코드이다. 더보기를 누르면 확인할 수 있다.
더보기
# 1308번 D-Day
from datetime import *
today = tuple(map(int, input().split()))
dday = tuple(map(int, input().split()))
if today[0] + 1000 < dday[0]:
print('gg')
elif today[0] + 1000 == dday[0] and (today[1], today[2]) <= (dday[1], dday[2]):
print('gg')
else:
today = date(*today)
dday = date(*dday)
print(f'D-{dday.toordinal() - today.toordinal()}')
'알고리즘 > 백준 문제 풀이' 카테고리의 다른 글
[Python] 1340번 연도 진행바 (0) | 2022.09.29 |
---|---|
[Python] 18155번 Issuing Plates (0) | 2022.09.29 |
[Python] 2057번 팩토리얼 분해 (0) | 2022.09.29 |
[Python] 4948번 베르트랑 공준 (0) | 2022.09.29 |
[Python] 5637번 가장 긴 단어 (0) | 2022.09.28 |