import java.io.*;
import java.util.*;
class Main {
public static void main(String args[]) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 문자열S
String S = br.readLine();
// 자른 문자열을 넣을 리스트 자료구조 선언
List < String > list = new ArrayList < > ();
// 입력받은 단어의 길이만큼 반복문을 수행
for (int i = 0; i < S.length(); i++) {
//substring메소드를 사용하여 인덱스를 기준으로 뒤에 있는 문자를 리스트에 추가
list.add(S.substring(i));
}
// 정렬메서드를 사용하여 알파벳순으로 정렬
Collections.sort(list);
// 결과 값 출력
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}
해결방법
접미사 배열 문제의 핵심 키 포인트는 substring
메서드의 사용이다. 해당 메서드를 사용할 경우, 특정 인덱스를 기준으로 문자열을 자를 수 있다.
문제를 해결하기 위해, 특정 인덱스의 기준을 i
로 설정하고 문자열의 길이만큼 반복수행하였다.
정렬 메서드를 사용하기위해 리스트를 선언하였고, Collections.sort
메서드를 사용하여 리스트 내 문자열들을 알파벳 순으로 정렬할 수 있었다.