dev.Log

Deque<Node> deque = new LinkedList<>(); 본문

알고리즘

Deque<Node> deque = new LinkedList<>();

초코푸딩 2022. 9. 12. 15:25
package acmicpc;

import java.io.*;
import java.util.Deque;
import java.util.LinkedList;
import java.util.StringTokenizer;

public class P11003 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        StringTokenizer st = new StringTokenizer(br.readLine());
        int N = Integer.parseInt(st.nextToken());
        int L = Integer.parseInt(st.nextToken());

        st = new StringTokenizer(br.readLine());
        Deque<Node> mydeque = new LinkedList<>();
        for(int i=0; i<N ; i++) {
            int now = Integer.parseInt(st.nextToken());
            while(!mydeque.isEmpty() && mydeque.getLast().value > now) {
                mydeque.removeLast();
            }//while
            mydeque.addLast(new Node(now, i));
            if(mydeque.getFirst().index <= i-L) {
                mydeque.removeFirst();
            }
            bw.write(mydeque.getFirst().value + " ");
        }//for

        bw.flush();
        bw.close();
    }

    static class Node {
        public int value;
        public int index;

        Node(int value, int index) {
            this.value = value;
            this.index = index;
        }

    }
}

'알고리즘' 카테고리의 다른 글

17298 스택  (0) 2022.09.13
스택 P1874  (0) 2022.09.12
1253 투포인터  (0) 2022.09.08
2018 연속합  (0) 2022.09.05
10986 나머지합구하기  (0) 2022.09.04
Comments