https://programmers.co.kr/learn/courses/30/lessons/42583

 

코딩테스트 연습 - 다리를 지나는 트럭

트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈

programmers.co.kr

 

스택/큐 문제이다.

큐 자료구조를 사용하여 선입선출(FIFO) 방식으로 풀어보았다.

class Solution {
    public int solution(int bridge_length, int weight, int[] truck_weights) {
        int answer = 0;
		int end = 0;
		int sum = 0;
		int wait = 0;
		int[] start = new int[truck_weights.length];
		boolean p = true;
		while (p) {
			if(answer - start[end] == bridge_length) {
				sum -= truck_weights[end];
				end++;
			}
			
			if(wait<truck_weights.length && sum + truck_weights[wait] <= weight) {
				start[wait] = answer;
				sum += truck_weights[wait];
				wait++;
			}
			answer++;
			if(end == truck_weights.length)
				p = false;
			
		}
		return answer;
    }
}

+ Recent posts