문제풀이/프로그래머스
개인정보 수집 유효기간(카카오) 문제풀이
soo-dal
2024. 3. 13. 22:13
문제
https://school.programmers.co.kr/learn/courses/30/lessons/150370
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 접근 방식
오늘을 기준으로 수집된 개인정보들에 대해 파기되어야하는지 여부를 구하는 문제이다. 각 개인정보마다 문자열로 주어진 [개인정보 수집 일자]와 [약관 종류]가 주어지며 해당 정보를 통해 만료기간을 구해서 오늘 날짜와 비교해야한다.
[오늘 날짜]와 [만료기간]을 비교하는 부분이 핵심이며 날짜의 대소 비교를 위해서 해당 날짜들을 모두 정수로 변환하여 비교하도록 구현했다.
MONTH=12
DATE=28
def convert_date_to_num(date):
y,m,d=map(int,date.split("."))
return y*MONTH*DATE+m*DATE+d
코드
MONTH=12
DATE=28
def convert_date_to_num(date):
y,m,d=map(int,date.split("."))
return y*MONTH*DATE+m*DATE+d
def solution(today, terms, privacies):
answer = []
term_dict=dict()
for term in terms:
policy,duration=term.split()
term_dict[policy]=int(duration)
today_num=convert_date_to_num(today)
for idx,privacy in enumerate(privacies):
date,policy=privacy.split()
date_num=convert_date_to_num(date)+DATE*term_dict[policy]-1
if date_num<today_num:
answer.append(idx+1)
return answer