2023 KAKAO BLIND RECRUITMENT [개인정보 수집 유효기간]

Sonar0·2023년 2월 8일
0

개인정보 수집 유효기간


HOW

발상

  • 오늘의 날짜를 일 수로 환산한다.
  • 보관 시작 날짜부터 유효기간 까지를 일 수로 계산해 합산한 보관 가능 날짜를 구한다.
  • 오늘 날짜와 보관 가능 날짜를 비교해 파기해야하는 개인정보를 정답 배열에 넣는다.

add

  • 만약 2023년이라면 올 해는 아직 지나지 않았기 때문에 일 수로 환산할 때 (year - 1) * 336 을 해야 한다. 같은 원리로 month 와 day도 1씩을 빼준 뒤 계산한다.

솔루션 코드

def solution(today, terms, privacies):
    
    # 정답 배열
    answer = []
    
    # 약관 종류와 유효기간을 dictionary로 운영할 계획이다.
    temp_terms = {}
    
    # {약관 종류 : 유효기관} 형태로 해쉬 저장
    for i in terms:
        a, b = i.split()[0], int(i.split()[1])
        temp_terms[a] = b
    
    # 오늘까지 총 일 수 계산
    # 1년은 365일
    t_year = int(today[0:4])
    t_month = int(today[5:7])
    t_day = int(today[8:10])
    today_date = ((t_year-1) * 336) + ((t_month-1) * 28) + (t_day-1)

    for j in range(len(privacies)) :
        
        temp = privacies[j].split()

        year = int(temp[0][0:4])
        month = int(temp[0][5:7])
        day = int(temp[0][8:10])
        option = temp[1]
        
        # 개인정보 수집 된 날짜까지 총 일 수 계산
        total_date = ((year-1) * 336) + ((month-1) * 28) + (day-1)
        
        # 약관을 키 값으로 유효기간을 찾아 수집 된 날부터 유효기간을 더해 보관 가능한 날짜를 구한다.
        limit_date = total_date + temp_terms[option] * 28 - 1
        
        # 보관 가능 날짜 < 오늘 날짜 라면 파기해야 하므로
        if(limit_date < today_date) :
            
            # 정답배열에 넣는다
            answer.append(j+1)
    return (answer)
profile
초보 개발자

0개의 댓글

관련 채용 정보