골치 아팠다. split()함수 뒤에 인덱싱 사용이 가능한지 알았고, 날짜 비교 및 계산에 datetime이라는 라이브러리를 사용해보기도 했고(하지만 다르게 풀었다..ㅎㅎ) dictionary 에 enumerate()함수를 또 사용해보기도 했다.
import datetime as dt
from dateutil.relativedelta import relativedelta
def solution(today, terms, privacies):
answer = []
todaySplit = today.split('.')
todate = dt.datetime(year=int(todaySplit[0]),month=int(todaySplit[1]),day=int(todaySplit[2]))
tmp = []
tmp2 = []
for i in terms:
tmp.append(i.split(' ')[0])
tmp2.append(i.split(' ')[1])
termsDict = dict(zip(tmp,tmp2))
tmp3 = []
tmp4 = []
for j in privacies:
pridate = dt.datetime(year=int(j.split(' ')[0].split('.')[0]),month=int(j.split(' ')[0].split('.')[1]),day=int(j.split(' ')[0].split('.')[2])) + relativedelta(months=int(termsDict[j.split(' ')[1]]))
if todate < pridate:
print(pridate)
print(privacies.index(j))
print(answer)
return answer
def solution(today, terms, privacies):
answer = []
year = int(today.split('.')[0])*12*28
month = int(today.split('.')[1])*28
day = int(today.split('.')[2])
today = year + month + day
terms = {i[:1]:int(i[2:])*28 for i in terms}
for i,p in enumerate(privacies):
y,m,d = p.split('.')
d,c = d.split(' ')
p = int(y)*12*28 + int(m)*28 + int(d)
if p + terms[c] <= today:
answer.append(i+1)
return answer