-
[1차] 셔틀버스코딩 테스트/Level 3 2020. 10. 6. 16:54반응형
[1차] 셔틀버스
2018 KAKAO BLIND RECRUITMENT
1350명 완료https://programmers.co.kr/learn/courses/30/lessons/17678
상황 시뮬레이션.
일단 버스에 라이언을 제외한 승객들을 조건에 맞춰서 태운 뒤.
마지막 버스가 만차이면 마지막 탑승객보다 1초 당겨서 도착.
만차가 아니면 마지막 버스 출발시간에 도착.def solution(n, t, m, table): table = sorted([int(time[:2]) * 60 + int(time[3:]) for time in table], reverse=True) busses = {} for i in range(540, 540 + n * t, t): seats = m # 남은 좌석수 busses[i] = [] while seats > 0 and table and table[-1] <= i: busses[i].append(table.pop()) seats -= 1 end_bus = list(busses)[-1] # list(sorted(busses))[-1] if m == len(busses[end_bus]): # 버스가 가득찼다면 answer = busses[end_bus][-1] - 1 else: # 버스가 가득차지 않았다면 answer = end_bus return f"{answer // 60:02}:{answer % 60:02}"
최신 버전의 파이썬은 딕셔너리의 (생성) 순서가 유지됩니다.
그렇지 않은 버전을 사용하신 다면 sorted가 필요합니다.테스트 1 〉 통과 (0.07ms, 10.9MB) 테스트 2 〉 통과 (0.07ms, 10.9MB) 테스트 3 〉 통과 (0.07ms, 10.9MB) 테스트 4 〉 통과 (0.08ms, 10.9MB) 테스트 5 〉 통과 (0.09ms, 10.9MB) 테스트 6 〉 통과 (0.06ms, 10.9MB) 테스트 7 〉 통과 (0.39ms, 10.9MB) 테스트 8 〉 통과 (0.08ms, 11MB) 테스트 9 〉 통과 (0.07ms, 10.8MB) 테스트 10 〉 통과 (0.07ms, 10.9MB) 테스트 11 〉 통과 (0.08ms, 10.9MB) 테스트 12 〉 통과 (0.35ms, 10.9MB) 테스트 13 〉 통과 (0.35ms, 10.9MB) 테스트 14 〉 통과 (0.10ms, 10.9MB) 테스트 15 〉 통과 (0.13ms, 10.9MB) 테스트 16 〉 통과 (0.22ms, 10.9MB) 테스트 17 〉 통과 (0.36ms, 10.9MB) 테스트 18 〉 통과 (0.30ms, 10.9MB) 테스트 19 〉 통과 (0.33ms, 10.9MB) 테스트 20 〉 통과 (0.32ms, 10.9MB) 테스트 21 〉 통과 (0.34ms, 10.9MB) 테스트 22 〉 통과 (0.97ms, 11.1MB) 테스트 23 〉 통과 (1.01ms, 11.2MB) 테스트 24 〉 통과 (0.40ms, 10.9MB)
반응형