문제링크
def solution(today, terms, privacies):
answer = []
# 개인정보 약관을 보관할 딕셔너리 선언
term_dic = {}
# 연, 월, 일을 각자 계산하기 귀찮으니 하나의 긴 숫자로 표현한다.
year, month, date = today.split('.')
today = int(year)*12*28 + int(month)*28 + int(date)
# 개인정보 약관을 딕셔너리로 변환해야 한다.
for t in terms:
term_dic[t.split(' ')[0]] = t.split(' ')[1]
# enumerate를 통해 인덱스화 함께, 받은 날짜와 약관만큼 반복을 돌게 한다.
for i, p in enumerate(privacies):
# 받은 연월일을 똑같이 나눠주고
new_year, new_month, new_date = p.split('.')
# 받은 일에는 약관기호가 포함되어 있으므로 분리 해 준다.
new_new_date, new_privacie = new_date.split(' ')
# 검사해야 할 날짜를 오늘 날짜와 똑같이 하나의 숫자로 변경 해 준다.
privacies_date = int(new_year)*12*28 + int(new_month)*28 + int(new_new_date)
# 오늘이랑 같거나 오늘이 더 크면 약관을 파기해야 하므로 인덱스 + 1만큼 넣어준다.
if today >= privacies_date + int(term_dic[new_privacie]) * 28:
answer.append(i + 1)
return answer