프로그래머스 - [Level 2] 다리를 지나는 트럭(JAVASCRIPT)
카테고리 : 스택/큐
같은 문제를 JAVA, C++에서는 queue를 활용해 먼저 풀어봤다.
Javascript에서는 queue의 기능을 단순 배열로 대체할 수 있다.
push() : 배열의 맽 끝에 값 추가
pop() : 배열의 맨 끝 값 제거
shift() : 배열 맨 앞 값 제거
unshift() : 배열의 맨 앞에 값 추가
소스코드
function solution(bridge_length, weight, truck_weights) {
let answer = 0;
let queue=[];
let total_weight=0;
let count=0;
for(let i=0;i<truck_weights.length;i++){
let now_truck=truck_weights[i];
while(true){
if(queue.size===0){
queue.push(now_truck);
total_weight+=now_truck;
count++;
break;
}
else if(queue.length===bridge_length){
total_weight-=queue.shift();
}
else{
if(total_weight+now_truck<=weight){
total_weight+=now_truck;
queue.push(now_truck);
count++;
break;
}else{
queue.push(0);
count++;
}
}
}
}
return count+bridge_length;
}
Leave a comment