[Programmers] 다리를 지나는 트럭
문제 바로가기 : https://programmers.co.kr/learn/courses/30/lessons/42583
문제 설명은 위 링크에서 확인해주시길 바랍니다.
Solution
review
먼저 지나간 트럭이 먼저 나가야 하므로 당연히 큐를, 모두 1초당 속도가 1이므로 queue.size()
를 이용했다.
truck_weights
를 i
로 가리키고 빠져나간 트럭의 수를 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
을 증가시켜주면 된다.
댓글남기기