문제


입력 및 출력


풀이


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메서드를 사용하여 리스트 내 문자열들을 알파벳 순으로 정렬할 수 있었다.

profile
"계획에 따르기보다 변화에 대응하기를"

0개의 댓글