[프로그래머스] 다리를 지나는 트럭
문제정보
문제풀이
Stack/Queue 카테고리에 포함된 문제인데 그냥 주어진 array로 풀었다. 문제 내용 그대로 정직하게(?) 푼 느낌이다.
class Solution {
private int[] b = null;
private int q_w = 0;
public int solution(int bridge_length, int weight, int[] truck_weights) {
b = new int[bridge_length];
int turn = 0;
int t_i = 0;
while(true){
turn++;
int sum = 0;
// 1. move trucks on the bridge
for(int i=b.length-2; i>=0; i--){
b[i+1] = b[i];
}
b[0] = 0;
if(t_i < truck_weights.length){
// 2. get weight of trucks on the bridge
for(int i=0; i<b.length; i++){
sum += b[i];
}
// 3. put the next truck
if(sum + truck_weights[t_i] <= weight){
b[0] = truck_weights[t_i];
t_i++;
}else{
b[0] = 0;
}
}else{
sum = 0;
for(int i=0; i<b.length; i++){
sum += b[i];
}
if(sum == 0){
break;
}
}
}
return turn;
}
}
Leave a comment