홍대병에 걸린 도현이는 겹치는 것을 매우 싫어한다. 특히 수열에서 같은 원소가 여러 개 들어 있는 수열을 싫어한다. 도현이를 위해 같은 원소가 개 이하로 들어 있는 최장 연속 부분 수열의 길이를 구하려고 한다.
이하의 양의 정수로 이루어진 길이가 인 수열이 주어진다. 이 수열에서 같은 정수를 개 이하로 포함한 최장 연속 부분 수열의 길이를 구하는 프로그램을 작성해보자.
첫째 줄에 정수 ()과 ()가 주어진다.
둘째 줄에는 이 주어진다 ()
조건을 만족하는 최장 연속 부분 수열의 길이를 출력한다.
9 2
3 2 5 5 6 4 4 5 7
7
나머지 예제는 생략한다.
import sys
input = sys.stdin.readline
n,k = map(int,input().rstrip().split())
l = list(map(int,input().rstrip().split()))
answer = 0
_dict = {}
left, right = 0, 0
while right < n:
r_cnt = _dict.get(l[right],0)
if r_cnt < k:
_dict[l[right]] = _dict.get(l[right],0) + 1
right+=1
else:
_dict[l[left]] = _dict.get(l[left],0) - 1
left+=1
answer = max(answer, right-left)
print(answer)