RUBY

[프로그래머스] 다리를 지나는 트럭 본문

PS/Programmers

[프로그래머스] 다리를 지나는 트럭

RUBY_루비 2020. 10. 15. 23:59

출처:: programmers.co.kr/learn/courses/30/lessons/42583?language=python3

분류:: 스택,큐 

 

1. 문제 이해 및 해결과정

 1. 스택

1. 다리길이 만큼 bridge를 만들어 준다
2. bridge가 빌때까지 , (다리에 있는 모든 것이 지나갈때까지)
  2-1. bridge는 왼쪽부터 빠져나가므로 왼쪽pop, 시간 증가 => 시간에 따라 무조건 진행되는 과정
3. 다리를 지나가야할 트럭이 있을 경우
  3-1. 현재 다리를 지나가야할 트럭 + 현재 다리를 지나고 있는 트럭의 무게 합이 다리가 가능한 무게 보다 작거나 같으면, 현재 다리를 지나가야할 트럭을 다리에 추가해준다.
  3-2. 현재 다리를 지나가야할 트럭이 들어가서 가능한 무게를 초과하다면, 가능한 무게가 될 때까지 기다리는 과정이 필요하다  => bridge.append(0)
  

 

2. 풀이방법

   1. [ python ] 스택

def solution(bridge_length, weight, truck_weights):
    bridge=[0]*bridge_length #다리
    t=0
    while bridge: #다리에 모든 것이 지나갈때까지
        bridge.pop(0) #다리의 왼쪽 빠져나감
        print(bridge)
        print(t)
        t+=1
        if truck_weights: #남은 트럭이 있으면
            if sum(bridge)+truck_weights[0]<=weight: #가능한 무게라면
                bridge.append(truck_weights.pop(0))
            else:
                bridge.append(0) #0을 넣어줌 , 가능한 무게가 될때까지 
            print(bridge)
    return t

 

3. 오답원인

 

4. 알게된 점

 

Comments