728x90
문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/150370
풀이
# 날짜를 일로 통일시킴
def date2day(dt):
return int(dt.split('.')[0]) * 12 * 28 + int(dt.split('.')[1]) * 28 + int(dt.split('.')[2])
def solution(today, terms, privacies):
answer = []
today = date2day(today)
terms = {term[0]: int(term.split()[1]) for term in terms}
for i in range(len(privacies)):
privacy = privacies[i]
if terms[privacy[-1]] * 28 + date2day(privacy.split()[0]) <= today:
answer.append(i+1)
return answer
- map 쓰는 방법 연습하기
- list 를 dict로 바꾸는 dict comprehension
다른 사람 풀이
def to_days(date):
year, month, day = map(int, date.split("."))
return year * 28 * 12 + month * 28 + day
def solution(today, terms, privacies):
months = {v[0]: int(v[2:]) * 28 for v in terms}
today = to_days(today)
expire = [
i + 1 for i, privacy in enumerate(privacies)
if to_days(privacy[:-2]) + months[privacy[-1]] <= today
]
return expire
728x90
'PYTHON > CODING TEST' 카테고리의 다른 글
[DFS/BFS] 음료수 얼려 먹기 (0) | 2024.05.10 |
---|---|
[programmers] 카드 뭉치 (0) | 2023.02.19 |
[programmers] 외톨이 알파벳 (0) | 2023.02.16 |
[programmers] 호텔 대실 (0) | 2023.02.12 |
[programmers] 둘만의 암호 (0) | 2023.02.12 |