문제:
https://www.acmicpc.net/problem/11656
11656번: 접미사 배열
첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다.
www.acmicpc.net
코드:
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.next();
// 접미사 저장 배열
String [] arr = new String[s.length()];
for(int i=0;i<s.length();i++){
// 접미사를 저장할 문자열
String suffix = "";
// i부터 suffix에 저장 (i부터 저장할 시 문자열을 하나씩 줄이면서 저장 가능(접미사))
for(int j=i;j<s.length();j++){
suffix += s.charAt(j);
}
// 배열에 접미사 저장
arr[i] = suffix;
}
// 사전순 정렬
Arrays.sort(arr);
for(int i=0;i<s.length();i++){
System.out.println(arr[i]);
}
}
}
baekjoon의 접미사 목록:
// 문자열을 하나씩 줄이는 식
baekjoon
aekjoon
ekjoon
kjoon
joon
oon
on
n
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
주석 x 코드:
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.next();
String [] arr = new String[s.length()];
for(int i=0;i<s.length();i++){
String suffix = "";
for(int j=i;j<s.length();j++){
suffix += s.charAt(j);
}
arr[i] = suffix;
}
for(int i=0;i<s.length();i++){
System.out.println(arr[i]);
}
}
}
'Java > 백준' 카테고리의 다른 글
[Java][1912] 연속합 (0) | 2022.11.10 |
---|---|
[Java][1932] 정수 삼각형 (1) | 2022.11.10 |
[Java][2910] 빈도 정렬 (0) | 2022.11.07 |
[Java][11652] 카드 (1) | 2022.11.06 |
[Java][1431] 시리얼 번호 (0) | 2022.11.06 |