본문 바로가기
python-algorithm

백준 1308 D-Day

by 무적김두칠 2024. 2. 8.

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

 

1308번: D-Day

첫째 줄에 오늘의 날짜가 주어지고, 두 번째 줄에 D-Day인 날의 날짜가 주어진다. 날짜는 연도, 월, 일순으로 주어지며, 공백으로 구분한다. 입력 범위는 1년 1월 1일부터 9999년 12월 31일 까지 이다.

www.acmicpc.net

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from datetime import date
 
 
def sol(date1, date2, new_date1):
    different_date = (date2 - date1).days
    over_thousand = (date2 - new_date1).days
    if over_thousand >= 0:
        return 'gg'
    else:
        return f'D-{different_date}'
 
 
if __name__ == '__main__':
    dd1, yy1, mm1 = map(int, input().split())
    dd2, yy2, mm2 = map(int, input().split())
    date1 = date(dd1, yy1, mm1)
    date2 = date(dd2, yy2, mm2)
    new_date1 = date(dd1+1000, yy1, mm1)
 
    print(sol(date1, date2,new_date1))
 
cs

제일 처음 풀었던게 3년전.. 그당시엔은 무작정 년월일을 직접 계산해서 틀렸는데

날짜 계산할때는 모듈을 쓰기를 바랍니다...(예외의 경우가 너무 많아요)

그다음 1000년후의 계산이 필요한데 처음에는
dateutil.relativedelta.relativedelta를 사용해서 더하려고 했으나 백준 시스템에서 모듈이 안깔려 있는 관계로..
(ModuleNotFound에러)

입력할때 1000년후까지 같이 매개변수로 넣어 계산했습니다.

반응형

'python-algorithm' 카테고리의 다른 글

백준 27465 소수가 아닌 수  (0) 2024.02.09
백준 14215 세 막대  (0) 2024.02.08
leetcode 2937. Make Three Strings Equal  (0) 2024.02.08
백준 25206 너의 평점은  (0) 2024.02.06
leetcode 3028. Ant on the Boundary  (0) 2024.02.06

댓글