프로그래머스/Lv. 1
55. 개인정보 수집 유효기간 ★
Seohyeong Lee
2024. 7. 17. 02:43
유형 : 구현
풀이 시간 : 25분, 인터넷 검색
def solution(today, terms, privacies):
today = today.split(".")
today = [int(x) for x in today]
answer = []
termdict = dict([t.split(" ") for t in terms])
privlist = [x.split(" ") for x in privacies]
date = [y[0].split(".") for y in privlist]
tm = [y[1] for y in privlist]
for i in range(len(tm)):
date[i][0] = int(date[i][0])
date[i][1] = int(date[i][1]) + int(termdict[tm[i]])
date[i][2] = int(date[i][2]) - 1
if date[i][2] < 1:
date[i][2] += 28
date[i][1] -= 1
if date[i][1] > 12:
date[i][0] += date[i][1] // 12
date[i][1] = date[i][1] % 12
if date[i][1] == 0:
date[i][0] -= 1
date[i][1] += 12
for i in range(len(date)):
if date[i][0] < today[0]:
answer.append(i+1)
elif date[i][0] == today[0] and date[i][1] < today[1]:
answer.append(i+1)
elif date[i][0] == today[0] and date[i][1] == today[1] and date[i][2] < today[2]:
answer.append(i+1)
return answer
진짜 이게 뭐지.......
if date[i][1] > 12:
date[i][0] += date[i][1] // 12
date[i][1] = date[i][1] % 12
if date[i][1] == 0:
date[i][0] -= 1
date[i][1] += 12
이 부분 로직을 빼먹고 구현해서 처음에 다 실패로 나왔음.
단순히 12 이상일 때 12를 뺴거나 하는 것이 아니라 12로 나눈 몫과 나머지를 이용할 것..
그리고 몫과 나머지에서 더 나아가서 만약 몫이, 즉 새로 구한 month가 0인 경우 또한 고려해 주어야 한다.