백준
백준 11003번: 최솟값 찾기
2호0
2023. 1. 31. 21:00
https://www.acmicpc.net/problem/11003
11003번: 최솟값 찾기
N개의 수 A1, A2, ..., AN과 L이 주어진다. Di = Ai-L+1 ~ Ai 중의 최솟값이라고 할 때, D에 저장된 수를 출력하는 프로그램을 작성하시오. 이때, i ≤ 0 인 Ai는 무시하고 D를 구해야 한다.
www.acmicpc.net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
import sys
from collections import deque
input = sys.stdin.readline
n, l = map(int, input().split())
a = list(map(int, input().split()))
mydeque = deque()
for i in range(n):
while mydeque and mydeque[-1][1] > a[i]:
mydeque.pop()
mydeque.append((i,a[i]))
if mydeque[0][0] <=i-l:
mydeque.popleft()
print(mydeque[0][1], end=' ')
|
cs |