Algorithm/정렬(Sort)

[백준 11656번] 접미사 배열 (Java 풀이)

agility 2020. 3. 1. 15:19

백준알고리즘 11656번 : 접미사 배열

주어진 문자열의 접미사를 모두 출력하되, 알파벳순으로 정렬하여 출력하는 문제이다.

Split method를 이용해 받은 문자열을 배열에 담고,

이와 똑같은 배열을 하나 만들고 난 뒤 이중 for문을 돌려 접미사 배열을 생성해준다.

Arrays.sort method를 이용해 정렬한 뒤 출력한다.

 

 

 

풀이 과정


1. Split으로 문자 하나하나를 String 배열에 담는다.
2. 1번과 똑같은 String 배열을 만든 뒤, 1번의 것들을 순차적으로 더하여 접미사를 생성한다.
3. Arrays.sort를 이용하여 배열을 정렬한 뒤 출력한다.

 

 

소스 ▽

더보기
import java.util.Arrays;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) { // 11656번 접미사 배열
		Scanner sc = new Scanner(System.in);
		String str = sc.nextLine();

		String[] S = str.split("");
		String[] sum = S;
		for (int i = 0; i < S.length; i++) {
			for (int j = i + 1; j < S.length; j++) {
				sum[i] += S[j];
			}
		}

		Arrays.sort(sum);
		for (int i = 0; i < sum.length; i++) {
			System.out.println(sum[i]);
		}
	}

}