처음 풀이... 난잡 그 잡채
만약 정보 수집일자가 2021.05.02
이고 기한이 6개월일때 2021.11.01
를 구하고 싶었다!
그래서 year, month, day 를 나눠서 구하고자 했다...
근데 또 if문 길게 쓰고 뭐 한 달이 넘어가면 month+1하고 이런게 싫어서
year = int(year) + 1 if int(month) + d.get(t) > 12 else int(year)
month = (int(month) + (int(date) - 2 + d.get(t) * 28) // 28) % 12
date = (int(date) - 2) % 28 + 1
이런식으로 풀었다..
근데 너무 난잡하고 정신없고 읽기 어려운 것 같고, 심지어 오늘 날짜와 대소비교를 해주려면 연산을 또 해줘야해서 결국 이것저것 해보다가 쿨하게 날림!
year * 12달 * 28일 + month * 28일 + day
로 바꿔서 저장해버리자는 결론이 났다. 훨씬 간편하고 빠르다!def solution(today, terms, privacies):
d = {}
answer = []
for term in terms:
t, m = term.split(' ')
d[t] = int(m) * 28
today_days = into_days(today)
for idx, p in enumerate(privacies):
date, term = p.split(' ')
p_days = into_days(date) + d.get(term)
if p_days <= today_days:
answer.append(idx + 1)
return answer
def into_days(date):
year, month, day = map(int, date.split('.'))
return year * 12 * 28 + month * 28 + day