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

2021. 10. 19. 20:28문제풀기/프로그래머스

https://programmers.co.kr/learn/courses/30/lessons/42583

 

코딩테스트 연습 - 다리를 지나는 트럭

트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈

programmers.co.kr

시키는대로 구현을 잘 하면 된다.

현재 무게와 트럭이 몇 대 있는지 꼭 확인해야한다.

def solution(bridge_length, weight, truck_weights):
    answer = 1
    now_weight = 0
    now_trucks = 0
    start_times = [0] * len(truck_weights)
    i = 0
    while i < len(truck_weights):
        for j in range(i-now_trucks,i,1):
            if bridge_length + start_times[j] <= answer:
                now_trucks -= 1
                now_weight -= truck_weights[j]
        if now_weight + truck_weights[i] <= weight and now_trucks+1 <=bridge_length:
            start_times[i] = answer
            now_weight += truck_weights[i]
            now_trucks += 1
            answer += 1
            i+= 1
        else:
            answer = bridge_length + start_times[i-now_trucks]
            now_weight -= truck_weights[i-now_trucks]
            now_trucks -= 1
            
    for i in range(len(truck_weights)-now_trucks,len(truck_weights),1):
        answer = bridge_length + start_times[i]
    return answer