본문 바로가기

코딩

[파이썬] 코딩테스트 연습 - 개인정보 수집 유효 기간

반응형

이번 문제는 파이썬 라이브러리를 임포트해서 사용하면 편한 문제였습니다.

datetime 라이브러리를 자주 사용할 일이 없어서 처음에 조금 어려웠지만,

datetime, dateutil 라이브러리의 사용법을 이용해서 날짜 및 시간 계산을 쉽게 할 수 있었습니다.

파이썬이기 때문에 정답률이 낮은 편인데도 쉽게 해결할 수 있었던 것 같아요

 

import time
import datetime
from dateutil.relativedelta import relativedelta

def solution(today, terms, privacies):
    months = 0
    date = ''
    answer = []
    today = today.replace('.', '-')
    # today가 2019.01.01라면 replace 메소드를 이용해서 2019-01-01로 변경해줍니다.
    for i in range(len(privacies)):
    #어떤 약관 종류인지 알아보기 위한 for문입니다.
        for j in range(len(terms)):
            if privacies[i][-1] == terms[j][0]:
                months = int(terms[j][2:])
                #몇 달 간 보관할 수 있는 지 알아보았습니다.
                break
        date = privacies[i][:-2].replace('.', '-')
        date = datetime.datetime.strptime(date,'%Y-%m-%d') + relativedelta(months=months)
        #relativedelta(months=숫자)를 이용하여 몇 달 뒤가 될 지 더해줍니다.
        #변수로 사용한 months에 값이 담겨 있습니다.
        if time.strptime(today, "%Y-%m-%d") >= time.strptime(str(date), "%Y-%m-%d %H:%M:%S"):
            answer.append(i+1)
    return answer
반응형