Algorithm_PS
11656. <접미사 배열>
Frisbeen
2024. 2. 5. 03:12
11656번: 접미사 배열
첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다.
www.acmicpc.net
baekjoon의 접미사는 baekjoon, aekjoon, ekjoon, kjoon, joon, oon, on, n 으로 총 8가지가 있고, 이를 사전순으로 정렬하면, aekjoon, baekjoon, ekjoon, joon, kjoon, n, on, oon이 된다.
얘를 사전순으로.
1. 인덱싱으로 잘라서 배열에 넣은 다음 (ArrayList)활용
2. sort하면 끝날거같다.
3. 부분 문자열 >> 웬만하면 자바의 편한 substring 메소드를 활용하자
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
String str = br.readLine();
ArrayList<String> al = new ArrayList<String>();
for(int i=0 ; i<str.length(); i++) {
al.add(str.substring(i,str.length()));
}
Collections.sort(al);
for(String x : al) {
sb.append(x).append('\n');
}
System.out.println(sb);
}
}