문자열의 모든 접두사를 사전순으로 정렬한 뒤, 각 접두사가 끝나는 위치를 순서대로 출력한다.
보통4정렬문자열구현아직 제출이 없습니다시간 제한2초메모리 제한512 MB접미사 배열(suffix array)은 어떤 문자열의 모든 접미사를 사전 순으로 정렬한 뒤, 정렬된 순서대로 각 접미사가 시작하는 인덱스를 적어 둔 배열이다. 문자열 'banana'를 예로 들면 다음과 같다.
그래서 'banana'의 접미사 배열은 {5, 3, 1, 0, 4, 2}이다.
연세대학교 PS 동아리 모르고리즘의 회원 택희와 남규가 문자열 문제 하나를 함께 풀고 있었다. 다음은 그때 오간 대화의 일부다.
두 사람은 그대로 혼란에 빠졌다. 혼란스러워하는 택희와 남규를 대신해 접두사 배열을 구하는 프로그램을 작성하자.
첫 줄에 알파벳 소문자로만 이루어진 문자열 S가 주어진다. (1≤∣S∣≤100000)
∣S∣개의 줄에 걸쳐, S의 모든 접두사를 사전 순으로 정렬했을 때 목록의 첫 접두사부터 마지막 접두사까지 각 접두사가 끝나는 인덱스를 순서대로 출력한다. 문자열의 인덱스는 0부터 시작한다.