-
[프로그래머스 스택/큐] 다리를 지나는 트럭코딩테스트 2020. 8. 8. 17:15
https://programmers.co.kr/learn/courses/30/lessons/42583
[
코딩테스트 연습 - 다리를 지나는 트럭
트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이��
programmers.co.kr
](https://programmers.co.kr/learn/courses/30/lessons/42583)
문제
정답 코드
def solution(bridge_length, weight, truck_weights): answer = 0 temp = [0] * bridge_length result = [] while temp: answer += 1 temp.pop(0) if truck_weights: if sum(temp) + truck_weights[0] <= weight: temp.append(truck_weights.pop(0)) else: temp.append(0) return answer
풀이
큐를 활용해야 하는 문제이다
bridge_length 크기의 큐를 생성한다. 문제를 쉽기 풀기 위해서 temp에 다리길이만큼 0을 할당했다.
0초
0 0 1초 경과
트럭 한 대가 다리를 건널 수 있게 공간을 하나 만든다.
대기중인 트럭이 존재하고, 다리를 건너는 트럭의 총 무게가 weight를 넘지 않는지 확인한다. 무게를 넘지 않는다면, temp에 트럭을 추가한다.
(1초경과)
0 7 2초 경과
1초가 더 지났으니 7은 한칸 더 앞으로 온다. 다리를 건너는 중인 트럭(7)과 대기중인 첫번째 트럭(4)가 제한하중(10)을 넘으니 4트럭은 건너지 못하고 7이 완전히 다리를 건널 때까지 기다린다. 0 삽입
7 0 3초 경과
7트럭은 다리를 완전히 건넜다. 다음 트럭 4가 다리를 건넌다.
0 4 4초 경과
다음 트럭 5가 다리를 건너고 있는 트럭 무게 4를 합쳐도 10을 넘지 않기 떄문에 트럭5가 다리를 건넌다.
4 5 이러한 식으로 반복된다.
'코딩테스트' 카테고리의 다른 글
[프로그래머스 SQL] String ,Date - 중성화 여부 파악하기 (0) 2020.08.10 [SQL] 차집합, LEFT JOIN (0) 2020.08.08 [프로그래머스 스택/큐] 주식가격 (0) 2020.08.07 [백준 2798 /python] 블랙잭 (0) 2020.08.07 [프로그래머스 SQL 테스트] SELECT (0) 2020.08.06