어떤 값 가 수열에 번 등장한다고 하자. 한 번의 연산에서 지우는 구간은 모든 원소가 서로 달라야 하므로, 한 번의 연산으로 값 를 두 개 이상 지울 수 없다.
따라서 값 를 하나 지우려면, 같은 연산에서 가 아닌 원소도 적어도 하나 같이 지워져야 한다. 전체 원소 중 가 아닌 원소는 개뿐이므로, 값 의 원소는 최대 개만 지울 수 있다. 그러므로 최종적으로 적어도
개의 가 남아야 한다.
모든 값에 대해 생각하면, 을 가장 많이 등장하는 값의 등장 횟수라고 할 때 정답은 적어도
이다.
이제 이 하한을 항상 달성할 수 있음을 보인다.
먼저 라고 하자. 가장 많이 등장하는 값을 라고 하자. 수열에 가 아닌 원소가 남아 있다면, 현재 수열에는 와 가 아닌 원소가 인접한 위치가 반드시 존재한다. 그 두 원소는 서로 다르므로 길이 구간으로 지울 수 있다. 이 연산을 반복하면 가 아닌 모든 원소를 지울 수 있고, 그때마다 도 하나씩 같이 지워진다. 따라서 최종적으로 개의 만 남길 수 있다.
이제 인 경우를 보자. 이 경우에는 모든 원소를 지울 수 있다. 이를 현재 수열의 길이에 대한 귀납법으로 보일 수 있다.
현재 수열에서 가장 많이 등장하는 횟수를 이라 하자.
따라서 이면 모든 원소를 지울 수 있다.
결론적으로 정답은
이다. 여기서 은 수열에서 가장 많이 등장하는 값의 등장 횟수이다.
구현은 각 값의 등장 횟수를 세고 최댓값 을 구하면 된다.
시간 복잡도는 이다.