PS/프로그래머스

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

s_omi 2024. 11. 2. 09:41

✏️ 문제

 

문제 파악

문제 자체가 연도, 월, 일을 가지고 말하는 것이기 때문에 12월이 넘었는지, 28일이 넘었는지 처리를 잘해주어야 한다. 

~에 해당하면 ~를 매치해주어야할 때 딕셔너리만큼 편한 것이 없어서 약관 종류와 유효기간을 다룰 때 딕셔너리를 활용해서 풀었다. 

이 문제를 풀었다면 더 확장된 문제인 1번 동영상 재생기 문제를 풀어보면 좋을 것 같다!

 

코드

def solution(today, terms, privacies):
    answer = []
    term_dict = {}

    cur_year, cur_month, cur_day = map(int, today.split('.'))
    
    for term in terms:
        key, value = term.split()
        term_dict[key] = int(value)

    for i, privacy in enumerate(privacies):
        date, term_type = privacy.split()
        y, m, d = map(int, date.split('.'))

        m += term_dict[term_type]
        
        if m > 12:
            y += (m - 1) // 12
            m = (m - 1) % 12 + 1

        if (y < cur_year) or (y == cur_year and m < cur_month) or (y == cur_year and m == cur_month and d <= cur_day):
            answer.append(i + 1)

    return answer

 

'PS > 프로그래머스' 카테고리의 다른 글

[Python] 신고 결과 받기  (0) 2024.11.02
[Python] 1번 / 동영상 재생기  (0) 2024.11.02
[Python] 10번 / 공원  (0) 2024.11.02
[Python] 공원 산책  (0) 2024.11.01
[Python] 10번 / 데이터 분석  (0) 2024.11.01