최대 1 분 소요

사용 언어: 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


💛 개인 공부 기록용 블로그입니다. 👻

맨 위로 이동하기