알고리즘/백준

[백준] 11656번 : 접미사 배열 - JAVA(자바)

온한온 2025. 2. 25. 13:37

백준 11656번 : 접미사 배열

 

 

 

문제 풀이

백준 11656번은 실버 4 난이도로 문자열, 정렬에 관한 문제입니다.

입력 받은 문자열의 접미사를 사전순으로 정렬하는데, 이때 입력 받은 문자열을 포함해 모든 접미사를 찾아야 합니다.

 

baekjoon이라는 문자열을 입력 받으면

baekjoon부터 앞글자를 하나씩 제외해 aekjoon ... oon, on, n으로 총 8가지를 구합니다.

따라서 문자열을 자르는 함수를 사용하고, 그렇게 자른 값을 배열에 저장한 뒤

그 배열을 정렬해서 출력하면 됩니다.

 

  • 문자열 자르기 : substring(시작 인덱스, 끝 인덱스)
  • 배열 정렬 : Arrays.sort(정렬할 배열)

 

코드
import java.io.*;
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++) {
			arr[i] = str.substring(i, str.length());
		}
		
		Arrays.sort(arr);
		for (String s : arr) {
			System.out.println(s);
		}
	}

}

먼저 substring을 사용해 각각의 문자열을 자르고 배열에 저장했습니다.

이후 Arrays.sort로 정렬해 배열을 출력했습니다.