문제3018--접두사 배열

3018: 접두사 배열

[만든사람 : jbs33_PJW]
시간제한 : 1.000 sec  메모리제한 : 128 MiB

문제 설명

문자열 S에 대해, 맨 앞에서부터 시작해 얻은 부분 문자열을 접두사라고 한다.
이때 부분 문자열은 항상 연속적이여야 한다.

예를 들어, abcdef라는 문자열이 있다면
접두사는 a, ab, abc, abcd, abcde, abcdef가 존재하게 된다.

문자열이 주어졌을 때, 접두사를 사전 순으로 정렬해 보자.


입력 설명

첫째 줄에 문자열 S가 주어진다. (|S| ≤ 5000)

출력 설명

첫째 줄부터 한 줄에 하나씩, 정렬한 결과를 출력하라.

입력 예시 Copy

DCBA

출력 예시 Copy

D
DC
DCB
DCBA 

도움

사전 순으로 앞선다의 정의는, 앞에서부터 비교했을 때 처음으로 다른 글자가 발견되었을 때
아스키 값이 작은 문자열이 더 사전 순으로 앞서게 된다.

예를 들어, abc와 abd가 있다면 abc가 abd보다 사전 순으로 앞선다.
또한 ab와 abc와 같이 매칭할 문자가 없다면, 길이가 작은 문자열이 사전 순으로 앞선다.

게시판

작성자제목(댓글)
글이 없습니다.