삽집하는 개발들/알고리즘

[98일차] 접미사 배열 - 백준 - 11656(python - 문자열, 정렬)

악투 2023. 12. 17. 20:01
반응형

문제 설명

접미사 배열은 문자열 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의 접미사를 사전순으로 한 줄에 하나씩 출력한다.

 

예제 입출력

baekjoon aekjoon
baekjoon
ekjoon
joon
kjoon
n
on
oon

 

코드 및 설명

s = input()
answer = []
for i in range(len(s)):  
  answer.append(s[i:len(s)])
  
for val in sorted(answer):
  print(val)

 

이 문제는 문자열을 입력받은 후 첫번째 글자부터 하나씩 빼면서 단어를 만들어간 후 사전순으로 정렬하여 프린트하면

 

되는 문제이다.

 

s[i:len(s)] 첫번째 문자부터 마지막까지, 두번째 문자부터 마지막까지 반복한다.

 

그 후 for문을 돌릴떄 sorted한 데이터로 돌리고 출력해주면 정답이 나온다.

반응형