아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

소 줄 세우기

면접 대비

시간 제한1초메모리 제한128 MB

요약
소의 품종 번호 N개가 주어질 때, 서로 다른 품종을 최대 K개 제거한 뒤 남는 수열에서 같은 번호가 연속으로 가장 길게 나오는 구간의 길이를 구한다.
난이도

보통10점 중 6점

유형
슬라이딩 윈도우, 투 포인터, 해시맵, 배열
정답자
아직 제출이 없습니다

문제

농부 존의 소 NN마리(1≤N≤100,0001 \le N \le 100{,}000)가 한 줄로 서 있다. 각 소는 0≤B(i)≤1,000,000,0000 \le B(i) \le 1{,}000{,}000{,}000 범위의 정수 품종 번호를 가지며, 줄에서 ii번째 소의 품종 번호는 B(i)B(i)이다. 서로 다른 소가 같은 품종 번호를 가질 수도 있다.

존은 같은 품종 번호를 가진 소들이 길게 연속으로 이어져 있으면 줄이 훨씬 인상적으로 보인다고 생각한다. 이런 구간을 만들기 위해, 존은 품종 번호를 최대 KK개까지 고른 뒤 그 번호에 해당하는 소를 줄에서 모두 빼낼 수 있다. 남은 소들은 원래 순서를 유지한 채 빈자리를 메우며 붙는다. 이렇게 소를 빼낸 뒤 만들 수 있는, 같은 품종 번호를 가진 소들의 연속 구간의 최대 길이를 구하여라.

입력

  • 첫째 줄: 공백으로 구분된 두 정수 NN과 KK.
  • 둘째 줄부터 N+1N+1번째 줄까지: i+1i+1번째 줄에는 품종 번호 B(i)B(i)가 주어진다.

출력

  • 첫째 줄: 존이 만들 수 있는, 같은 품종 번호를 가진 소들의 연속 구간의 최대 길이.

힌트

9마리의 소가 품종 번호 2, 7, 3, 7, 7, 3, 7, 5, 7 순으로 서 있고, 존은 품종 번호를 최대 1개까지 뺄 수 있다.

품종 번호 3인 소를 모두 빼내면 줄은 2, 7, 7, 7, 7, 5, 7이 되고, 여기에는 품종 번호 7인 소가 4마리 연속으로 이어진 구간이 있다.

예제1

  1. 예제 1

    입력
    9 1
    2
    7
    3
    7
    7
    3
    7
    5
    7
    
    예상 출력
    4