ALGORITHM

[JAVA] 백준 11656번- 접미사 배열

연듀 2022. 10. 9. 13:54

https://www.acmicpc.net/problem/11656

 

11656번: 접미사 배열

첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다.

www.acmicpc.net

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;

public class Main{
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str = br.readLine();
        String[] arr = new String[str.length()];

        for(int i=0; i<str.length(); i++){
            String suffix = str.substring(i);
            arr[i] = suffix;
        }

        Arrays.sort(arr);
        for(String x : arr) System.out.println(x);
    }
}

 

처음에 문제의 조건대로 배열 크기를 1000으로 잡았다가

Arrays.sort()로 정렬을 하려 할 때 String 배열의 기본값인 null은 정렬이 안돼 에러가 떴다. 

그래서 입력받은 문자열의 길이만큼 배열 크기를 선언해주었다.