반응형
문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/150370
접근 방식
문제는 2023 카카오 공채 1번 문제.
문제에서 개인정보를 수집한 날짜와 약관별 개인정보 보관 가능기간을 준다.
주어진 오늘날짜와 비교해서 파기해야 하는 개인정보 번호를 출력하는 문제.
“날짜 문제는 단위를 통일해서 풀어라” - 내가 좋아하는 개발자의 명언.
그 말 그대로 년,월,일 포맷으로 되어 있는 날짜정보를 일수로 통일하면 바로 풀리는 문제다.
모든 달이 28일이므로 연,월,일이 있으면 “(연 x 12달 x 28일) + (월 x 28일) + 일” 을 계산해서
“일” 로 통일한 후 비교하면 쉽다.
풀이 코드
def timeToDay(day):
y, m, d = map(int, day.split('.'))
return y * 12 * 28 + m * 28 + d
def solution(today, terms, privacies):
answer = []
term = {}
today = timeToDay(today)
for t in terms:
x, y = t.split()
term[x] = int(y)
for idx, p in enumerate(privacies):
start_day, kind = p.split()
if timeToDay(start_day) + term[kind] * 28 <= today:
answer.append(idx+1)
return answer
끝.
728x90
반응형