-
[Baekjoon Online Judge] 11656번: 접미사 배열문제 풀이/Baekjoon Online Judge 2021. 2. 5. 20:03
11656번: 접미사 배열
첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다.
www.acmicpc.net
요구사항
- 접미사 배열은 문자열 S의 모든 접미사를 사전순으로 정렬해 놓은 배열이다.
- 문자열 S가 주어졌을 때, 모든 접미사를 사전순으로 정렬한 다음 출력한다.
입력
- 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다.
출력
- 첫째 줄부터 S의 접미사를 사전순으로 한 줄에 하나씩 출력한다.
입력받은 문자열을 substring으로 시작 index를 하나씩 이동하며 List에 저장한다. 간단하게 정렬을 한 후 출력하여 해결하였다.
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class Baekjoon11656 { public static void main(String[] args) throws IOException { BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(System.out)); String word = bufferedReader.readLine(); List<String> dictionary = new ArrayList<>(); for (int i = 0; i < word.length(); i++) { dictionary.add(word.substring(i)); } Collections.sort(dictionary); // 사전 순으로 정렬 for (String s : dictionary) { bufferedWriter.write(s + "\n"); } bufferedWriter.flush(); bufferedReader.close(); bufferedWriter.close(); } }
'문제 풀이 > Baekjoon Online Judge' 카테고리의 다른 글
[Baekjoon Online Judge] 11053번: 가장 긴 증가하는 부분 수열 (0) 2021.02.06 [Baekjoon Online Judge] 1212번: 8진수 2진수 (0) 2021.02.05 [Baekjoon Online Judge] 10988번: 팰린드롬인지 확인하기 (0) 2021.02.05 [Baekjoon Online Judge] 2193번: 이친수 (0) 2021.02.02 [Baekjoon Online Judge] 2156번: 포도주 시식 (0) 2021.02.02