문제 설명
문자열 S에 대해, 맨 앞에서부터 시작해 얻은 부분 문자열을 접두사라고 한다.
이때 부분 문자열은 항상 연속적이여야 한다.
예를 들어, abcdef라는 문자열이 있다면
접두사는 a, ab, abc, abcd, abcde, abcdef가 존재하게 된다.
문자열이 주어졌을 때, 접두사를 사전 순으로 정렬해 보자.
이때 부분 문자열은 항상 연속적이여야 한다.
예를 들어, abcdef라는 문자열이 있다면
접두사는 a, ab, abc, abcd, abcde, abcdef가 존재하게 된다.
문자열이 주어졌을 때, 접두사를 사전 순으로 정렬해 보자.
입력 설명
첫째 줄에 문자열 S가 주어진다. (|S| ≤ 5000)
출력 설명
첫째 줄부터 한 줄에 하나씩, 정렬한 결과를 출력하라.
입력 예시 Copy
DCBA
출력 예시 Copy
D
DC
DCB
DCBA
도움
사전 순으로 앞선다의 정의는, 앞에서부터 비교했을 때 처음으로 다른 글자가 발견되었을 때
아스키 값이 작은 문자열이 더 사전 순으로 앞서게 된다.
예를 들어, abc와 abd가 있다면 abc가 abd보다 사전 순으로 앞선다.
또한 ab와 abc와 같이 매칭할 문자가 없다면, 길이가 작은 문자열이 사전 순으로 앞선다.
아스키 값이 작은 문자열이 더 사전 순으로 앞서게 된다.
예를 들어, abc와 abd가 있다면 abc가 abd보다 사전 순으로 앞선다.
또한 ab와 abc와 같이 매칭할 문자가 없다면, 길이가 작은 문자열이 사전 순으로 앞선다.