# 날짜 정보 파싱 후 비교
def changeDate(date, month, today):
yr, mth, day = map(int, date.split("."))
t_yr, t_mth, t_day = map(int, today.split("."))
yr, mth, day = changeFormat(yr, mth+month, day)
return checkDate(yr, t_yr, mth, t_mth, day, t_day)
# 두 날짜 비교
def checkDate(yr, t_yr, mth, t_mth, day, t_day):
val = 32*13*yr + 32*mth + day
t_val = 32*13*t_yr + 32*t_mth + t_day
if t_val >= val:
return True
return False
# 날짜 형식에 맞게 조정
def changeFormat(yr, mth, day):
while(mth > 12):
yr += 1
mth -= 12
return yr, mth, day
def solution(today, terms, privacies):
answer = []
termDict = {}
# 약관 정보
for items in terms:
item, val = items.split(" ")
termDict[item] = int(val)
# 파기할 정보 순회
for idx, items in enumerate(privacies):
date, term = items.split(" ")
if changeDate(date, termDict[term], today):
answer.append(idx+1)
return answer
출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges