728x90
문제
접미사 배열은 문자열 S의 모든 접미사를 사전순으로 정렬해 놓은 배열이다.
baekjoon의 접미사는 baekjoon, aekjoon, ekjoon, kjoon, joon, oon, on, n 으로 총 8가지가 있고,
이를 사전순으로 정렬하면, aekjoon, baekjoon, ekjoon, joon, kjoon, n, on, oon이 된다.
문자열 S가 주어졌을 때, 모든 접미사를 사전순으로 정렬한 다음 출력하는 프로그램을 작성하시오.
https://www.acmicpc.net/problem/11656
입력
첫째 줄에 문자열 S가 주어진다.
S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다.
출력
첫째 줄부터 S의 접미사를 사전순으로 한 줄에 하나씩 출력한다.
예제
# input
baekjoon
# output
aekjoon
baekjoon
ekjoon
joon
kjoon
n
on
oon
문제 풀이
# 입력 받기
S = input()
# 리스트 컴프리헨션을 사용하여 모든 접미사를 생성하고, 이를 정렬
answer = sorted(S[i:] for i in range(len(S)))
for suffix in answer:
print(suffix)
파이썬을 독학하시는 분들에게 도움이 되길 바라며,
혹 더 좋은 방법이 있거나 오류가 있다면 편하게 말씀 부탁드립니다.
728x90