반응형
문제
꿀귀 라이언 인형과, 마찬가지로 꿀귀인 어피치 인형이 N개 일렬로 놓여 있다. 라이언 인형은 1, 어피치 인형은 2로 표현하자. 라이언 인형이 K개 이상 있는 가장 작은 연속된 인형들의 집합의 크기를 구하여라.
입력
첫 줄에 N과 K가 주어진다. (1 ≤ K ≤ N ≤ 106)
둘째 줄에 N개의 인형의 정보가 주어진다. (1 또는 2)
출력
K개 이상의 라이언 인형을 포함하는 가장 작은 연속된 인형들의 집합의 크기를 출력한다. 그런 집합이 없다면 -1을 출력한다.
풀이
import sys
input = sys.stdin.readline
n, k = map(int, input().split())
doll = list(map(int, input().split()))
answer = n + 1
left = 0
right = 0
if doll[0] == 1: cnt = 1
else: cnt = 0
while right < n:
tmp = right - left + 1
if cnt == k:
answer = min(answer, tmp)
if doll[left] == 1: cnt -= 1
left += 1
else:
right += 1
if right < n and doll[right] == 1: cnt += 1
if answer == n + 1: print(-1)
else: print(answer)
반응형
'Develop > 알고리즘' 카테고리의 다른 글
[백준/Python] Bronze I #24416 알고리즘 수업 - 피보나치 수 1 (0) | 2023.06.15 |
---|---|
[백준/Python] Bronze II #2747 피보나치 수 (0) | 2023.06.15 |
[백준/Python] Silver I #2667 단지번호붙이기 (0) | 2023.06.15 |
[백준/Python] Silver II #2961 도영이가 만든 맛있는 음식 (1) | 2023.06.14 |
[백준/Python] Silver I #16943 숫자 재배치 (0) | 2023.06.14 |
Comment