[문제]
https://school.programmers.co.kr/learn/courses/30/lessons/150370
[풀이]
1. 날짜 비교를 datetime 모듈로 진행하였다.
2. 월이 28일까지라서 보정작업을 해줘야 한다.
3. 월이 28일이면서 달이 12월이면 연도도 보정작업을 해줘야 한다.
from datetime import datetime
def solution(today, terms, privacies):
answer = []
date_today = datetime.strptime(today, '%Y.%m.%d')
dic = {s[0]: s[2:] for s in terms}
for i, s in enumerate(privacies):
d, t = s.split(' ')
add_month = int(dic[t])
year, month, day = map(int, d.split('.'))
year = year + (month + add_month - 1) // 12
month = (month + add_month - 1) % 12 + 1
day = (day - 1 + 27) % 28 + 1
if day == 28:
month = (month - 1 + 11) % 12 + 1
if month == 12:
year -= 1
date_new = datetime(year, month, day)
if date_new < date_today:
answer.append(i + 1)
return answer
날짜 비교를 그냥 총 일수를 구해서 해버리는게 더 가독성 좋고 효율적이고 편하다
'코드카타 > Python' 카테고리의 다른 글
달리기 경주 (1) | 2024.12.30 |
---|---|
[PCCP 기출문제] 2번 / 석유 시추 (2) | 2024.12.28 |
바탕화면 (0) | 2024.12.23 |
성격 유형 검사하기 (0) | 2024.12.22 |
햄버거 만들기 (1) | 2024.12.21 |