알고리즘/프로그래머스
[프로그래머스]Lv1. 개인정보 수집 유효기간(Python)
cha_eyoon
2024. 3. 14. 20:22
https://school.programmers.co.kr/learn/courses/30/lessons/150370
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 접근
1. 주어진 약관 종류와 이에 따른 유효기간을 저장할 적절한 자료구조를 선정한다. => 딕셔너리 선택
2. 연, 월, 일 형식으로 되어 있는 날짜 정보를 일수로 통일하여 문제를 푼다. => 별도 함수 생성
3. enumerate() 함수를 사용해 answer에 파기해야 할 개인정보에 해당하는 번호인 (index+1)를 추가해 나간다.
코드
def changeDate(date):
y, m, d = map(int, date.split('.'))
return (y*12*28) + (m*28) + d
def solution(today, terms, privacies):
answer = []
today = changeDate(today)
# 약관 종류: key, 유효기간: value
dic = {}
for t in terms:
k, v = t.split()
dic[k] = int(v)
for i, p in enumerate(privacies):
d, k = p.split()
if changeDate(d) + (dic[k] * 28) <= today:
answer.append(i+1)
return answer
문제 회고
날짜 문제는 단위를 통일하고 변환해주는 함수를 별도로 생성하는 것이 편리하다.