최대 1 분 소요

문제 바로가기 : https://programmers.co.kr/learn/courses/30/lessons/42583
문제 설명은 위 링크에서 확인해주시길 바랍니다.

Solution


review

먼저 지나간 트럭이 먼저 나가야 하므로 당연히 큐를, 모두 1초당 속도가 1이므로 queue.size()를 이용했다.
truck_weightsi로 가리키고 빠져나간 트럭의 수를 fin으로 나타냈다.
다리가 트럭 중량을 버틸 수 있으면 트럭을 추가하고 그렇지 않으면 0을 추가했다. 0을 추가했으므로 on.size() 역시 증가한다.

if(weight >= cur_w + truck_weights[i]){
            on.push(truck_weights[i]);
            cur_w += truck_weights[i];
            i++;
}
else{
    on.push(0);
}

on.size()가 다리 길이와 같을 때 맨 앞에 있는 트럭을 빼준다. 이 때 front의 중량이 0 이상일 때 트럭이 빠지게 된다.
front는 0이 될 수도 있으므로 0 이상일 때만 fin을 증가시켜주면 된다.

카테고리:

업데이트:

댓글남기기