[문제설명]

배열 A와 기준 R이 주어진다. 배열 A에서 R 길이만큼을 빼고 남은 값들의 종류의 개수가 최대가 되는 경우를 찾아, 그 종류의 개수를 반환하라 배열의 순서는 바꿀 수 없다. A의 길이는 최대 10만. 배열의 원소 값도 최대 10만이었던걸로 기억한다. A=[2, 3, 1, 4, 2, 2], R=3 일때 [4, 2, 2]를 빼면 남은 값의 종류의 개수가 3으로 최대가 된다.

✅ 문제 요약


📘 예시

A = [2, 3, 1, 4, 2, 2]
R = 3

길이 3인 구간을 자를 수 있는 경우는:

  1. 자를 부분: [2, 3, 1] → 남는 부분: [4, 2, 2] → 종류: 2
  2. 자를 부분: [3, 1, 4] → 남는 부분: [2, 2] + [2] → 종류: 1
  3. 자를 부분: [1, 4, 2] → 남는 부분: [2, 3] + [2] → 종류: 2
  4. 자를 부분: [4, 2, 2] → 남는 부분: [2, 3, 1] → 종류: 3

→ 최대는 3이므로 정답: 3


🎯 핵심 아이디어1

  1. 슬라이딩 윈도우로 길이 R인 구간을 순서대로 하나씩 빼봅니다.
  2. 뺀 구간을 제외한 나머지 부분에서 유일한 값의 개수를 셉니다.
  3. 그 중 최대값을 저장해 반환합니다.