카테고리 없음

99클럽 코테 스터디 16일차 TIL - [프로그래머스] 개인정보 수집 유효기간

난쟁이 개발자 2024. 4. 28. 22:26
반응형

문제 링크

 

프로그래머스

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

programmers.co.kr

 

풀이

더보기
def solution(today, terms, privacies):
    answer = []
    d = {}
    today_lst = list(map(int, today.split('.')))    # 오늘 날짜 리스트 (yyyy, mm, dd)

    for term in terms : # 약관 종류와 개월 수 딕셔너리로 저장
        n, m = term.split()
        d[n] = int(m) * 28  # 한 달 일 수 곱해줌

    for i in range(len(privacies)) :
        date, s = privacies[i].split()
        date_lst = list(map(int, date.split('.')))  # 수집일자 리스트 (yyyy, mm, dd)
        yyyy = (today_lst[0] - date_lst[0])*12*28
        mm = (today_lst[1] - date_lst[1])*28
        dd = today_lst[2] - date_lst[2]
        total = yyyy+mm+dd
        if d[s] <= total :
            answer.append(i+1)
    return answer

제한 사항에서 

  • 1개월 = 28일

만 주의한다면 문제는 생각보다 쉽게 풀 수 있었다.

딕셔너리에 개인 정보 등급과 유효기간을 넣어두고, 가입일이 해당하는 등급보다 초과했다면 answer 배열에 추가한다.

 

today = yyyy.mm.dd

=> total = (yyyy*12*28) + (mm*28) + dd 로 해서

total > (개월수[등급] * 28)에 해당하면, 삭제된 개인정보로 answer에 추가한다.

 

딕셔너리, split, 문자열 등을 잘 구현해보자

반응형