[Programmers] 개인정보 수집 유효기간
사용 언어: Python3
문제
풀이
첫 번째
def solution(today, terms, privacies):
answer = []
t_yy, t_mm, t_dd = map(int, today.split('.'))
terms_dic = dict() # {'Z': 3, 'D': 5}
for x in terms:
a, b = x.split()
terms_dic[a] = int(b)
for idx, x in enumerate(privacies):
days, kind = x.split()
yy, mm, dd = map(int, days.split('.'))
yy += (mm + terms_dic[kind]) // 12
mm = (mm + terms_dic[kind]) % 12
if dd == 1:
dd = 28
mm -= 1
else:
dd -= 1
print(yy, mm, dd)
if yy < t_yy or mm < t_mm or dd < t_dd:
answer.append(idx+1) # 파기해야 할 정보
return answer
- 실패
util 사용
import datetime as dt
from dateutil.parser import parse
from dateutil.relativedelta import relativedelta
def solution(today, terms, privacies):
answer = []
tod = parse(today)
# print(type(tod)) # <class 'datetime.datetime'>
terms_dic = dict()
for x in terms:
a, b = x.split()
terms_dic[a] = int(b)
for idx, x in enumerate(privacies):
d, kind = x.split()
old = parse(d)
old += relativedelta(months=terms_dic[kind])
old -= dt.timedelta(days=1)
if old < tod:
answer.append(idx+1)
return answer
- 성공!
- 파이썬에서 날짜와 시간 다루기 참고
💛 개인 공부 기록용 블로그입니다. 👻