Korean English Japanese Chinese (Simplified) Chinese (Traditional)

 

 

 

 

 

난이도: 플레티넘 5

풀이: Java의 util 중 하나인 덱(deque)를 이용한다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import java.util.*;
import java.io.*;
 
 
public class Q11003 {
    public static final Scanner scanner = new Scanner(System.in);
    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();
            }
            mydeque.addLast(new Node(now, i));
            if (mydeque.getFirst().index <= i - L) {
                mydeque.removeFirst();
            }
            bw.write(mydeque.getFirst().value + " ");
        }
        bw.flush();
        bw.close();
    }
        
        static class Node {
            public int value;
            public int index;
            
            Node(int value, int index){
                this.value = value;
                this.index = index;
            }
        }
}
 
cs
 

If you like this post, please give me a ❤️...!
 
✰Popular Posts✰
✰Recent Posts✰
 

❤ Seoul, Daejeon, Tokyo, Fukuoka
Site developed by Ryu Hyunwoo