-
[프로그래머스] 셔틀버스코테 준비/구현 2023. 3. 2. 21:47
오답
while문으로 안하고 for문으로 돌리게 되면
10, 25, 1, ["09:00", "09:10", "09:20", "09:30", "09:40", "09:50", "10:00", "10:10", "10:20", "10:30", "10:40", "10:50"]
이런 테스트 케이스를 통과하지 못한다. 왜냐하면 크루가 탈 수 있는 경우에만 다음 크루원으로 넘어가야하는데 for문을 쓰게 되면 크루가 탈 수 없어도 무조건 timetable 리스트를 끝까지 돌게 되기 때문이다.
import datetime def solution(n, t, m, timetable): shuttle=[540+t*i for i in range(n)] time=[] for i in timetable: time.append(int(i[0:2])*60+int(i[3:])) time.sort() answer=0 for i in shuttle: count=m for j in time: #이부분에서 테케를 통과 못함 if j<=i and count>0: # 크루의 도착시간이 셔틀시간보다 빠르고 자리가 남아 있으면 count-=1 if count>0: answer=i else: answer=j-1 return format(answer//60,'02')+":"+format(answer%60,'02')
정답
import datetime def solution(n, t, m, timetable): shuttle=[540+t*i for i in range(n)] time=[] for i in timetable: time.append(int(i[0:2])*60+int(i[3:])) time.sort() answer=0 j=0 for i in shuttle: count=m while j<len(time) and time[j]<=i and count>0: # 크루의 도착시간이 셔틀시간보다 빠르고 자리가 남아 있으면 count-=1 j+=1 #다음 크루로 넘어감 if count>0: answer=i else: answer=time[j-1]-1 return format(answer//60,'02')+":"+format(answer%60,'02')
'코테 준비 > 구현' 카테고리의 다른 글
재귀_하노이의 탑 알고리즘 (1) 2023.12.08 [백준] 1916. 최소비용 구하기 (다익스트라 알고리즘) (0) 2023.10.13 [백준] 1173. 운동 (0) 2023.02.26 [백준] 3036. 링 (fraction 모듈) (0) 2023.02.13 [백준] 3053. 택시기하학 (0) 2023.01.29