[Algorithm] ๐Ÿ๋ฐฑ์ค€ 11656 ์ ‘๋ฏธ์‚ฌ ๋ฐฐ์—ด

HaJingJingยท2021๋…„ 6์›” 30์ผ
0

Algorithm

๋ชฉ๋ก ๋ณด๊ธฐ
87/119

0. ๋ฌธ์ œ

์ ‘๋ฏธ์‚ฌ ๋ฐฐ์—ด์€ ๋ฌธ์ž์—ด S์˜ ๋ชจ๋“  ์ ‘๋ฏธ์‚ฌ๋ฅผ ์‚ฌ์ „์ˆœ์œผ๋กœ ์ •๋ ฌํ•ด ๋†“์€ ๋ฐฐ์—ด์ด๋‹ค.

baekjoon์˜ ์ ‘๋ฏธ์‚ฌ๋Š” baekjoon, aekjoon, ekjoon, kjoon, joon, oon, on, n ์œผ๋กœ ์ด 8๊ฐ€์ง€๊ฐ€ ์žˆ๊ณ , ์ด๋ฅผ ์‚ฌ์ „์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋ฉด, aekjoon, baekjoon, ekjoon, joon, kjoon, n, on, oon์ด ๋œ๋‹ค.

๋ฌธ์ž์—ด S๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋ชจ๋“  ์ ‘๋ฏธ์‚ฌ๋ฅผ ์‚ฌ์ „์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ ๋‹ค์Œ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

์ž…๋ ฅ
์ฒซ์งธ ์ค„์— ๋ฌธ์ž์—ด S๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. S๋Š” ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ๊ณ , ๊ธธ์ด๋Š” 1,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค.

์ถœ๋ ฅ
์ฒซ์งธ ์ค„๋ถ€ํ„ฐ S์˜ ์ ‘๋ฏธ์‚ฌ๋ฅผ ์‚ฌ์ „์ˆœ์œผ๋กœ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ถœ๋ ฅํ•œ๋‹ค.

1. ์•„์ด๋””์–ด

๐Ÿ’ก ์ ‘๋ฏธ์‚ฌ๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด, s๋ฅผ 0๋ถ€ํ„ฐ ๋๊นŒ์ง€ substring์œผ๋กœ ๋ถ„๋ฆฌํ•จ
๐Ÿ’ก suffix๋ฅผ ๋‹ด์€ ๋ฐฐ์—ด์„ ์ •๋ ฌํ•จ

2. ํ•ต์‹ฌ ํ’€์ด

  1. ์ ‘๋ฏธ์‚ฌ๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด, s๋ฅผ 0๋ถ€ํ„ฐ ๋๊นŒ์ง€ substring์œผ๋กœ ๋ถ„๋ฆฌํ•จ
for(int i=0; i<s.length(); i++) {
	suffix[i] = s.substring(i);
}
  1. suffix๋ฅผ ๋‹ด์€ ๋ฐฐ์—ด์„ ์ •๋ ฌํ•จ
Arrays.sort(suffix);

3. ์ฝ”๋“œ

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
public class Imple_10 {

	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String s = br.readLine().trim();
		String[] suffix = new String[s.length()];
		
		for(int i=0; i<s.length(); i++) {
			suffix[i] = s.substring(i);
		}
		
		Arrays.sort(suffix);
		
		for(int i=0; i<suffix.length; i++) {
			System.out.println(suffix[i]);
		}
	}

}

4. ๊ฒฐ๊ณผ

์„ฑ๊ณตโœจ

profile
๐ŸŒฑ์ดˆ๋ณด ๊ฐœ๋ฐœ์ž๐ŸŒฑ

0๊ฐœ์˜ ๋Œ“๊ธ€