카테고리 없음
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, 문자열 등을 잘 구현해보자
반응형