✏️ 문제
문제 파악
문제 자체가 연도, 월, 일을 가지고 말하는 것이기 때문에 12월이 넘었는지, 28일이 넘었는지 처리를 잘해주어야 한다.
~에 해당하면 ~를 매치해주어야할 때 딕셔너리만큼 편한 것이 없어서 약관 종류와 유효기간을 다룰 때 딕셔너리를 활용해서 풀었다.
이 문제를 풀었다면 더 확장된 문제인 1번 동영상 재생기 문제를 풀어보면 좋을 것 같다!
코드
def solution(today, terms, privacies):
answer = []
term_dict = {}
cur_year, cur_month, cur_day = map(int, today.split('.'))
for term in terms:
key, value = term.split()
term_dict[key] = int(value)
for i, privacy in enumerate(privacies):
date, term_type = privacy.split()
y, m, d = map(int, date.split('.'))
m += term_dict[term_type]
if m > 12:
y += (m - 1) // 12
m = (m - 1) % 12 + 1
if (y < cur_year) or (y == cur_year and m < cur_month) or (y == cur_year and m == cur_month and d <= cur_day):
answer.append(i + 1)
return answer
'PS > 프로그래머스' 카테고리의 다른 글
[Python] 신고 결과 받기 (0) | 2024.11.02 |
---|---|
[Python] 1번 / 동영상 재생기 (0) | 2024.11.02 |
[Python] 10번 / 공원 (0) | 2024.11.02 |
[Python] 공원 산책 (0) | 2024.11.01 |
[Python] 10번 / 데이터 분석 (0) | 2024.11.01 |