[프로그래머스/Java] 다리를 지나는 트럭

괜찮아요?·2023년 4월 3일
0

programmers

목록 보기
11/23

링크

코딩테스트 연습 > 스택/큐 > 다리를 지나는 트럭

풀이순서

  1. 큐를 사용해서 풀기
  2. 큐의 길이=다리의 길이
  3. 큐가 다 차지 않거나, 무게가 다 차지 않으면 큐 들어옴

코드

import java.util.*;

class Solution {
    public int solution(int bridge_length, int weight, int[] truck_weights) {
        int time = 0;
        int sum = 0;
        Queue<Integer> bridge = new LinkedList<>();
        
        for(int i=0; i<truck_weights.length; i++){
            int truck = truck_weights[i];
            
            while(true){
                if(bridge.isEmpty()){
                    bridge.add(truck);
                    sum += truck;
                    time++;
                    break;
                }else if(bridge.size() == bridge_length){
                    sum -= bridge.poll();
                }else{
                    if(sum + truck <= weight){
                        bridge.add(truck);
                        sum += truck;
                        time++;
                        break;
                    }else{
                        bridge.add(0);
                        time++;
                    }
                }
            }
        }
        return time+bridge_length;
    }
}
profile
할 수 있어요

0개의 댓글