1 ๋ถ„ ์†Œ์š”

๐Ÿ“ [S1_13335] ํŠธ๋Ÿญ

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;

public class Main{
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine(), " ");
        
        // ๋‹ค๋ฆฌ๋ฅผ ๊ฑด๋„ˆ๋Š” ํŠธ๋Ÿญ์˜ ์ˆ˜
        int n = Integer.parseInt(st.nextToken());
        
        // ๋‹ค๋ฆฌ์˜ ๊ธธ์ด
        int w = Integer.parseInt(st.nextToken());
        
        // ๋‹ค๋ฆฌ์˜ ์ตœ๋Œ€ ํ•˜์ค‘
        int L = Integer.parseInt(st.nextToken());
        
        // ๋‹ค๋ฆฌ์˜ ํ
        Queue<Integer> bridgeQueue = new LinkedList<>();
        
        // ํŠธ๋Ÿญ์˜ ํ
        Queue<Integer> truckQueue = new LinkedList<>();

        st = new StringTokenizer(br.readLine()," ");

        // ํŠธ๋Ÿญ ๋„ฃ๊ธฐ
        for(int i=0; i<n; i++){
            truckQueue.add(Integer.parseInt(st.nextToken()));
        }

        // 0์œผ๋กœ ๋‹ค๋ฆฌ ์ดˆ๊ธฐํ™” ์‹œํ‚ค๊ธฐ
        for(int i=0; i<w; i++){
            bridgeQueue.add(0);
        }

        // ์ด ์‹œ๊ฐ„
        int time = 0;

        // ๋‹ค๋ฆฌ์œ„์˜ ์ด ๋ฌด๊ฒŒ
        int bw =0;

        // ๋‹ค๋ฆฌ๊ฐ€ ๋นŒ ๋•Œ๊นŒ์ง€
        while(!bridgeQueue.isEmpty()){
            // ์‹œ๊ฐ„ ์ถ”๊ฐ€
            time++;

            // ๋งจ ๋งˆ์ง€๋ง‰ ๊ฒƒ ๋นผ๊ธฐ
            bw -= bridgeQueue.poll();

            // ํŠธ๋Ÿญ์ด ์•„์ง ๋‚จ์•˜๋‹ค๋ฉด
            if(!truckQueue.isEmpty()) {
                // ์กฐ๊ฑด์— ๋งž์œผ๋ฉด ๋„ฃ๊ธฐ
                if (bw + truckQueue.peek() <= L) {
                    // ๋‹ค๋ฆฌ์œ„ ํŠธ๋Ÿญ ๋ฌด๊ฒŒ ๋”ํ•˜๊ธฐ
                    bw += truckQueue.peek();
                    // ๋‹ค๋ฆฌ์— ํŠธ๋Ÿญ ์˜ฌ๋ฆฌ๊ธฐ
                    bridgeQueue.add(truckQueue.poll());
                } else {
                    // ํ•œ ์นธ ์”ฉ ๋ฐ€๊ธฐ
                    bridgeQueue.add(0);
                }
            }
        }
        System.out.println(time);
    }
}

๐Ÿค” ๋‚˜์˜ ์ƒ๊ฐ

Queue์˜ FIFO ํŠน์„ฑ์„ ์ด์šฉํ•˜๋ฉด ์ ‘๊ทผ์„ ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค.
ํŠธ๋Ÿญ ํ์™€ ๋‹ค๋ฆฌ ํ๋ฅผ ์ƒ์„ฑํ•ด ์ฒ˜์Œ์— ๋‹ค๋ฆฌ ํ๋ฅผ 0์œผ๋กœ ์ฑ„์šด ๋’ค ํŠธ๋Ÿญ์ด ๋“ค์–ด์˜ฌ ๋•Œ ๋งˆ๋‹ค ์ฒ˜๋ฆฌ๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค.
๋‹ค๋ฆฌ์œ„์— ์ด ๋“ค์–ด์˜ฌ ์ˆ˜ ์žˆ๋Š” ํŠธ๋Ÿญ๊ฐœ์ˆ˜๋Š” ๋‹ค๋ฆฌ ํ์˜ ์ „์ฒด ํฌ๊ธฐ๋กœ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ฃผ๊ณ 
์ „์ฒด ๋ฌด๊ฒŒ๊ฐ€ ๋„˜์œผ๋ฉด ์•ˆ๋˜๋Š” ๊ฒƒ์€ ํŠธ๋Ÿญ์ด ๋‚จ์•˜์„ ๋•Œ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ฃผ๋ฉฐ ํŠธ๋Ÿญ์„ ๋‹ค๋ฆฌ์— ์ถ”๊ฐ€ํ•œ๋‹ค.

ํƒœ๊ทธ: , , ,

์นดํ…Œ๊ณ ๋ฆฌ:

์—…๋ฐ์ดํŠธ: