동캄의 코딩도장

프로그래머스 level1 [개인정보 수집 유효기간] 파이썬 본문

코테/프로그래머스

프로그래머스 level1 [개인정보 수집 유효기간] 파이썬

동 캄 2023. 3. 16. 00:38

https://school.programmers.co.kr/learn/courses/30/lessons/150370

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

# 프로그래머스 level1 개인정보 수집 유효기간
from collections import defaultdict

def solution(today, terms, privacies):
    answer = []
    today=list(map(int,today.split('.')))
    today_year=today[0]
    today_month=today[1]
    today_day=today[2]
    today_days=today_year*12*28+today_month*28+today_day
    types=defaultdict(int)
    for term in terms:
        contract_type,contract_month=map(str,term.split())
        types[contract_type]=int(contract_month)
    for i in range(len(privacies)):
        privacy=privacies[i]
        privacy_date,privacy_type=map(str,privacy.split())
        privacy_year,privacy_month,privacy_day=map(int,privacy_date.split('.'))
        privacy_days=privacy_day+privacy_month*28+privacy_year*12*28+types[privacy_type]*28
        print(privacy_year,privacy_month,privacy_day,types[privacy_type])
        if privacy_days<=today_days:
            answer.append(i+1)
    return answer

# print(solution("2022.05.19",["A 6", "B 12", "C 3"],["2021.05.02 A", "2021.07.01 B", "2022.02.19 C", "2022.02.20 C"]))

설명서에 시키는대로 구현만 하면 되는 간단한 문제이다.

오늘 날 = 오늘연도*12*28 + 오늘 달 *28 + 오늘 일

파기 시작 날 = 수집시작연도*12*28 + 수집시작달*28 + 수집시작 일

 

만약 파기 시작 날 <= 오늘 날 이면, 해당 번째(index+1)을 정답에 추가한다.