프로그래머스 개인정보 수집 유효기간

안상철·2023년 5월 21일
0

문제링크

def solution(today, terms, privacies):
    answer = []
    
    # 개인정보 약관을 보관할 딕셔너리 선언
    term_dic = {}
    
    # 연, 월, 일을 각자 계산하기 귀찮으니 하나의 긴 숫자로 표현한다.
    year, month, date = today.split('.')
    today = int(year)*12*28 + int(month)*28 + int(date)
    
    # 개인정보 약관을 딕셔너리로 변환해야 한다.
    for t in terms:
        term_dic[t.split(' ')[0]] = t.split(' ')[1]
        
    # enumerate를 통해 인덱스화 함께, 받은 날짜와 약관만큼 반복을 돌게 한다.
    for i, p in enumerate(privacies):
    
    	# 받은 연월일을 똑같이 나눠주고
        new_year, new_month, new_date = p.split('.')
        
        # 받은 일에는 약관기호가 포함되어 있으므로 분리 해 준다.
        new_new_date, new_privacie = new_date.split(' ')
        
        # 검사해야 할 날짜를 오늘 날짜와 똑같이 하나의 숫자로 변경 해 준다.
        privacies_date = int(new_year)*12*28 + int(new_month)*28 + int(new_new_date)
        
        # 오늘이랑 같거나 오늘이 더 크면 약관을 파기해야 하므로 인덱스 + 1만큼 넣어준다.
        if today >= privacies_date + int(term_dic[new_privacie]) * 28:
            answer.append(i + 1)
        
    return answer
profile
웹 개발자(FE / BE) anna입니다.

0개의 댓글