슬라이딩 윈도우.
import sys
input = sys.stdin.readline
N, K = map(int, input().split())
dolls = list(map(int, input().split()))
left = 0
lion_cnt = 0
min_size = float('inf')
for right in range(N):
if dolls[right]==1:
lion_cnt += 1
if lion_cnt==1:
left = right
while lion_cnt > K:
left += 1
if dolls[left]==1:
lion_cnt -= 1
if lion_cnt == K:
min_size = min(min_size,right-left+1)
if min_size==float('inf'):
print(-1)
else:
print(min_size)
'practivceAlgorithm > 백준' 카테고리의 다른 글
[백준][Python] 16926 배열돌리기 1 (0) | 2021.08.23 |
---|---|
[백준][Python] 16432 떡장수와 호랑이 : 백트래킹 설계. (0) | 2021.08.22 |
[백준][Python] 2204 도비의 난독증 테스트 (0) | 2021.08.22 |
[백준][Python] 13699 점화식 (0) | 2021.08.20 |
[백준][Python] 6068 시간관리하기 (0) | 2021.08.19 |