유형 : 구현
풀이 시간 : 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인 경우 또한 고려해 주어야 한다.
'프로그래머스 > Lv. 1' 카테고리의 다른 글
56. 신고 결과 받기 (0) | 2024.07.17 |
---|---|
54. 성격 유형 검사하기 (0) | 2024.07.17 |
53. 신규 아이디 추천 ★ (isalpha, isdigit) (0) | 2024.07.17 |
52. 키패드 누르기 (0) | 2024.07.17 |
51. 크레인 인형뽑기 게임 (0) | 2024.07.16 |