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

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

펙갈스발센

면접 대비

시간 제한2초메모리 제한1024 MB

요약
서로 다른 K개의 문자로 이루어진 문자열에서 각 문자를 쓰는 순서를 정해 오른쪽 화살표를 누르는 총 횟수를 최소로 만들고, 그 최솟값을 출력한다.
난이도

보통10점 중 6점

유형
그리디, 정렬, 수학, 문자열
정답자
아직 제출이 없습니다

문제

Doris는 가족에게 보낼 긴 이메일을 쓰고 있다. 글은 서로 다른 KK개의 문자로 이루어져 있고 길이는 NN이다. Doris는 기억력이 좋지 않아서 키보드에서 각 문자가 어디에 있는지 기억하지 못한다. 대신 그녀는 이른바 펙갈스발센이라는 방식으로 글을 쓴다.

Doris는 글을 KK번에 나누어 쓰는데, 각 번에는 글을 구성하는 서로 다른 문자 하나씩을 담당한다. 먼저 Doris는 한쪽 갈로 어떤 문자의 모든 등장 위치를 적는다. 그다음 글의 처음으로 돌아가서 새 문자를 고른다. 이어서 다른 쪽 갈로 오른쪽 화살표 키를 사용해 그 문자의 모든 등장 위치를 적는다. 그 후 다시 글의 처음으로 돌아가서 세 번째 문자를 적고, 이런 식으로 계속한다. 글 전체를 다 쓸 때까지 이 과정을 반복한다. 이렇게 하면 Doris는 한 번에 한 문자에 대한 키 위치만 기억하면 된다.

문자를 적는 순서에 따라 걸리는 시간이 달라진다. 글 aabbac를 적을 때 순서 a, b, c는 오른쪽 화살표를 7번 누르게 한다. 먼저 오른쪽 화살표를 쓰지 않고 aaa를 적는다. 그다음 글의 처음으로 돌아가 오른쪽 화살표를 두 번 쓰고 bb를 적는다. 마지막으로 처음으로 돌아가 다섯 번 오른쪽으로 간 뒤 c를 적는다.

대신 순서 b, a, c를 골랐다면 먼저 bb를 적었을 것이다. 그다음 오른쪽 화살표를 두 번 눌러 aabba를 적고, 마지막으로 다섯 번 더 눌러 aabbac를 적었을 것이다.

순서 c, b, a는 오른쪽 화살표를 두 번만 누르면 되며, 이 순서가 최적이다.

입력

첫째 줄에는 양의 정수 NN과 KK가 주어진다. 다음 줄에는 알파벳 처음 KK개의 소문자(a, b, c, ...) 중에서 고른 NN개의 문자로 이루어진 문자열이 주어진다.

출력

Doris가 글을 쓰기 위해 오른쪽 화살표를 눌러야 하는 횟수를 하나의 수로 출력한다.

예제2

  1. 예제 1

    입력
    6 3
    aabbac
    
    예상 출력
    2
    
  2. 예제 2

    입력
    10 2
    aaabaaabbb
    
    예상 출력
    1