728x90
반응형
문제출처: https://school.programmers.co.kr/learn/courses/30/lessons/150370
풀이:
def solution(today, terms, privacies):
dic = dict()
for i in terms:
Alpha, mon = i.split(" ")
dic[Alpha] = mon
y,m,d = map(int,today.split("."))
result = []
for idx,i in enumerate(privacies,start=1):
date, alpah = i.split(" ")
yy,mm,dd = map(int,date.split("."))
mm += int(dic[alpah])
while mm >= 12:
yy += 1
mm -= 12
if yy > y:
continue
elif yy == y:
if mm > m:
continue
elif mm == m:
if dd > d:
continue
result.append(idx)
return result
모르겠다.
2개 틀림 이유는 뭘까,?
while 문 mm>=12 를 mm>12로 바꿔주면됨
일수로 그냥 다 바꿔서 유효기간 날짜가 오늘날짜보다 작으면 파기 시켜야한다를 사용함.
def solution(today, terms, privacies):
dic = dict()
for i in terms:
Alpha, mon = i.split(" ")
dic[Alpha] = mon
y,m,d = map(int,today.split("."))
sum_ymd = (y*12*28)+(m*28)+d
result =[]
for idx,i in enumerate(privacies,start=1):
date, alpah = i.split(" ")
yy,mm,dd = map(int,date.split("."))
mm += int(dic[alpah])
sum_ymd2 = (yy*12*28)+(mm*28)+dd
if sum_ymd2 <= sum_ymd:
result.append(idx)
return result
반응형
댓글