본문 바로가기

ProgramSoliving

프로그래머스 : 다리를 지나는 트럭

반응형
package excercise;

import java.util.LinkedList;
import java.util.Queue;

public class 다리를지나는트럭 {
	public static void main(String[] args) {
		int bridge_length = 2;
		int weight = 10;
		int[] truck_weights = { 7, 4, 5, 6 };

		System.out.println(new 다리를지나는트럭().solution(bridge_length, weight, truck_weights));
	}

	public int solution(int bridge_length, int weight, int[] truck_weights) {
		int answer = 0;

		int totalWeight = 0;
		Queue<Integer> q = new LinkedList<Integer>();
		for (int truck : truck_weights) {
			while (true) {
				if (q.isEmpty()) {
					q.add(truck);
					totalWeight += truck;
					answer++;
					break;
				} else if (q.size() == bridge_length) {
					totalWeight -= q.poll();
				} else {
					answer++;
					if (totalWeight + truck <= weight) {
						q.add(truck);
						totalWeight += truck;
						break;
					} else {
						q.add(0);
					}
				}
			}

		}
		return answer + bridge_length;
	}
}
반응형

'ProgramSoliving' 카테고리의 다른 글

프로그래머스 : 프린터  (0) 2020.12.17
프로그래머스 : 더맵게  (0) 2020.12.17
프로그래머스 : 기능개발  (0) 2020.12.12
프로그래머스 : 주식가격  (0) 2020.12.11
프로그래머스 : 베스트앨범  (0) 2020.12.11