프로그래머스 2단계 - 다리를 지나는 트럭(스택/큐)

프로그래머스 2단계 - 다리를 지나는 트럭(스택/큐)

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

import java.util.*; class Solution { public int solution(int bridge_length, int weight, int[] truck_weights) { //다리를 지나는 시간 int sec = 0; //다리에 올라간 무게 int bridge_weight = 0; //다리 Queue que = new LinkedList<>(); //트럭 수 만큼 반복문 실행 for(int truck : truck_weights){ while(true){ //다리가 비어잇다면 트럭 출발 if(que.isEmpty()){ que.add(truck); bridge_weight += truck; sec++; break; //다리가 꽉찻으면 }else if(que.size() == bridge_length){ //하나 뺀다. bridge_weight -= que.poll(); //다리에 자리가 잇으면 }else{ //다리에잇는 무게와 새로 들어갈 트럭의 무게가 더 크면 if(bridge_weight + truck > weight){ //시간만 늘린다. sec++; //무게가 0인 트럭을 추가함으로써 다리를 채운다. que.add(0); }else{ que.add(truck); sec++; bridge_weight += truck; break; } } } } //다리의 길이 + 트럭이 지나간 시간 return bridge_length+sec; } }

from http://sic-dev.tistory.com/99 by ccl(A) rewrite - 2021-09-09 16:01:48