https://school.programmers.co.kr/learn/courses/30/lessons/42583
정답코드
def solution(bridge_length, weight, truck_weights):
from collections import deque
q = deque(truck_weights)
bridge = deque([0] * bridge_length)
answer = 0
total = 0
while q:
answer += 1
total -= bridge[0]
bridge.popleft()
if total + q[0] <= weight:
truck = q.popleft()
bridge.append(truck)
total += truck
else:
bridge.append(0)
return answer + bridge_length
처음에 첫 분기문에서 total말고 sum(bridge) 메서드를 사용하였더니 5번 테스트가 시간초과가 나왔다.. 확실히 시간이 애매하게 통과하는 듯하다. 그래서 sum()메서드는 시간을 더 잡아먹기 때문에 total이라는 변수를 추가해서 시간복잡도를 줄이는 방식으로 해결했다.
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] Lv.2 124 나라의 숫자 (0) | 2022.09.19 |
---|---|
[프로그래머스] Lv.2 가장 큰 수 (0) | 2022.09.18 |
[프로그래머스] Lv.2 게임 맵 최단거리 (0) | 2022.09.18 |
[프로그래머스] Lv.2 스킬트리 (0) | 2022.09.17 |
[프로그래머스] Lv.2 오픈채팅방 (카카오) (1) | 2022.09.17 |