[Programmers] P150370 개인정보 수집 유효기간

Question

Language: Python

주어진 문제의 조건에 따라 구현하면 되는 간단한 문제이다.

  1. 각 약관정보에 대해 개인정보 유지지간이 존재
  2. 각각의 사용자에 대해 개인정보 수집일자, 약관정보를 저장

각각의 수집일자는 yyyy.mm.dd형태로 이루어져 있기 때문에 이 문자열을 일 형태로 변환하여 연산 과정을 간편하게 한다. 이후, 각 사용자에 대해 개인정보 수집일자 + 약관유지 기간을 계산하여 현재 날짜를 기준으로 낮은 값이면 개인정보가 만료되었음을 의미하므로 정답에 추가한다.

Solution

#날짜 변환 함수
def convert_to_day(str):
    year,month,day=str.split(".")
    day=int(day)
    month=int(month)*28
    year=int(year)*12*28
    
    return year+month+day

def solution(today, terms, privacies):
    answer = []
    
    #각각의 약관에 대한 정보 parsing
    term_polocies={}
    for term in terms:
        term_type,term_duration=term.split()
        term_polocies[term_type]=int(term_duration)
    
    #현재 날짜를 일로 변환
    today_day=convert_to_day(today)
    
    #각각의 약관정보에 대해 조사
    for i in range(len(privacies)):
        privacy=privacies[i]
        
        term_start_date,term_type=privacy.split()
        term_start_date=convert_to_day(term_start_date)
        #개인정보 수집일자 + 약관 유지 기간 < 현재 날짜 일경우 개인정보가 만료되었음을 의미하게 된다.
        if term_start_date+term_polocies[term_type]*28 -1 < today_day:
            answer.append(i+1)

    return answer

댓글남기기