문자열 나누기
우측 버튼을 눌러 기기를 연결해주세요.
문제 정보
문자열 나누기 (2)
쉬움
유형
프로그래밍
배점
100
참여자
669
정답률
96.5%
45
48

문제


길이가 인 문자열 가 주어진다. 플레이어는 문자열 를 서로 겹치지 않는 개의 부분문자열로 나누려고 한다. 부분문자열은 모두 길이가  이상이어야 하며, 원래 문자열에서 연속해야 한다.

문자열을 나누는 방법에 따라 플레이어는 점수를 얻을 수 있다. 점수는 다음 과정에 따라 계산된다.

  • 문자열 를 위 조건에 따라 나눴을 때, 등장하는 모든 부분문자열을 중복 제거하고 사전순으로 정렬한 결과를 라고 한다.
  • 나누어진 개의 문자열이 각각 에서 번째로 등장하는 문자열이라면, 얻을 수 있는 점수는  이다.

예를 들어, abcd 라는 문자열을 개의 부분문자열로 나누는 방법은 {a, b, cd}{a, bc, d}{ab, c, d} 의 세 가지가 있다. 여기서 부분문자열을 중복 제거하고 사전 순서로 정렬한 결과 는 aabbbcccdd 이다. 이때 {ab, c, d} 로 문자열을 나눈 경우 얻을 수 있는 점수는 점이고, 얻을 수 있는 최대 점수이다.

문자열 를 개의 부분문자열로 나눴을 때 얻을 수 있는 점수 중 최대 점수를 출력하시오.


입력


첫째 줄에 문자열의 길이 정수 이 주어진다.
둘째 줄에 문자열 가 주어진다.


  • 는 알파벳 소문자로만 구성되어 있다.


출력


문자열을 나눠서 얻을 수 있는 최대 점수를 출력한다.

입/출력 예시
:
공백
:
줄 바꿈
:
예시 1
입력
4
abcd
출력
14
예시 2
입력
3
abz
출력
6
⋇ 입출력 형식을 잘 지켜주세요
Q&A
누구나 질문하고 답변할 수 있는 Q&A입니다. 문제를 풀며 어려웠던 부분에 대해 질문해보세요.
이 문제에 관한 질문 (0)