[백준 11003] 최솟값 찾기 (슬라이딩 윈도우)
- 💾 알고리즘/LeetCode_백준
- 2023. 5. 25. 09:55
문제
https://www.acmicpc.net/problem/11003
코드
package org.kyhslam.DoItAlgorithm.ch02;
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();
}
mydeque.addLast(new Node(now, i));
if (mydeque.getFirst().index <= i - L) {
mydeque.removeFirst();
}
bw.write(mydeque.getFirst().value + " ");
bw.flush();
bw.close();
}
}
private static class Node {
int value;
int index;
public Node(int value, int index) {
this.value = value;
this.index = index;
}
}
}
'💾 알고리즘 > LeetCode_백준' 카테고리의 다른 글
[백준 11286] 절대값 힙 구현(우선순위 큐-중요) (0) | 2023.06.05 |
---|---|
[백준 17298] 오큰수 (스택) (0) | 2023.05.30 |
[백준 12891] 좋은 수 구하기(슬라이딩 윈도우) (0) | 2023.05.18 |
[백준 1253] 좋은 수 구하기(투 포인터) (0) | 2023.05.18 |
[백준 1940] 주몽의 명령(투 포인터) (0) | 2023.05.18 |