본문 바로가기

알고리즘 공부/백준 > Python3

[백준 파이썬] #11656: 접미사 배열

https://www.acmicpc.net/problem/11656

 

11656번: 접미사 배열

첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다.

www.acmicpc.net

[문제]

접미사 배열은 문자열 S의 모든 접미사를 사전순으로 정렬해 놓은 배열이다.

baekjoon의 접미사는 baekjoon, aekjoon, ekjoon, kjoon, joon, oon, on, n 으로 총 8가지가 있고, 이를 사전순으로 정렬하면, aekjoon, baekjoon, ekjoon, joon, kjoon, n, on, oon이 된다.

문자열 S가 주어졌을 때, 모든 접미사를 사전순으로 정렬한 다음 출력하는 프로그램을 작성하시오.

[문제 접근]

문자열의 인덱스를 사용해서 풀면 쉽게 풀 수 있다

 

[정답]

 

1. 문자열 S를 입력받는다. 모든 접미사를 저장할 리스트 ans을 선언한다.

2. for문을 돌면서 S[0:], S[1:], S[2:], ..., S[len(S):] 순으로 ans에 추가한다.

3. ans을 정렬하고 for문을 돌면서 정렬된 ans을 출력한다.