-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathJW_64062.java
More file actions
22 lines (22 loc) Β· 973 Bytes
/
JW_64062.java
File metadata and controls
22 lines (22 loc) Β· 973 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import java.util.ArrayDeque;
import java.util.Deque;
class JW_64062 {
public int solution(int[] stones, int k) {
int answer = Integer.MAX_VALUE;
// μ¬λΌμ΄λ© μλμ°λ₯Ό λ§λ€ ν
Deque<Integer> dq = new ArrayDeque<>();
for (int i = 0; i < stones.length; i++) {
// μ΅λκ°(νμ 맨 μ)μ΄ μ¬λΌμ΄λ© μλμ°μ ν¬κΈ°λ₯Ό λ²μ΄λ¬λ€λ©΄ μ κ±°
if (!dq.isEmpty() && dq.peekFirst() == i - k)
dq.pollFirst();
// μ΅λκ°μ μ μ§νλ©° νμ¬ λ€μ΄κ° μμλ³΄λ€ μμ κ°λ€ μ κ±°
while (!dq.isEmpty() && stones[dq.peekLast()] <= stones[i])
dq.pollLast();
dq.offerLast(i); // νμ¬ λμ μΈλ±μ€ μΆκ°
// μ¬λΌμ΄λ© μλμ°κ° μμ±λλ μκ°λΆν° μ΅μκ° κ³μ°
if (i >= k - 1)
answer = Math.min(answer, stones[dq.peekFirst()]);
}
return answer;
}
}