728x90
https://school.programmers.co.kr/learn/courses/30/lessons/150370
연 / 월/ 일/ 시 분 / 초
를 계산하는 문제에서는 서로의 대소를 비교할때
문제에서 주어진 최저의 단위를 사용하는것이 좋습니다.
이 문제에서는 일(day)를 최저의 단위로 보고있기 때문에
모든 날짜에 관한 단위를 일에 맞춰 문제를 풀면
각 날짜의 대소비교를 할때 수월하게 이용할 수 있습니다.
def solution(today, terms, privacies):
answer = []
term_dic = {}
today_year, today_month, today_day = today.split(".")
total_now_day = get_total_day(today_year, today_month, today_day)
for t in terms:
term_type, month = t.split(" ")
term_dic[term_type] = int(month) * 28
for i, p in enumerate(privacies):
year, month, day = p.split(" ")[0].split(".")
total_p_day = get_total_day(year, month, day)
term_type = p.split(" ")[1]
if total_p_day + term_dic[term_type] <= total_now_day:
answer.append(i + 1)
return answer
def get_total_day(year, month, day):
return int(year) * 12 * 28 + int(month) * 28 + int(day)
728x90
'PS > 프로그래머스' 카테고리의 다른 글
[프로그래머스 LV 3] 표현 가능한 이진트리 (파이썬/python) (0) | 2023.02.19 |
---|---|
[프로그래머스 LV 2] 이모티콘 할인행사 (파이썬/python) (0) | 2023.02.08 |
[프로그래머스 LV 3] 징검다리 건너기 (파이썬 / python ) (0) | 2022.10.18 |
[ 프로그래머스 LV 2 ] 주차 요금 계산 (파이썬 / python) (0) | 2022.10.18 |
[프로그래머스 LV 1] 성격 유형 검사하기 (파이썬/python) (0) | 2022.10.14 |