728x90
https://www.acmicpc.net/problem/11656
문제 설명
접미사 배열은 문자열 S의 모든 접미사를 사전순으로 정렬해 놓은 배열이다.
baekjoon의 접미사는 baekjoon, aekjoon, ekjoon, kjoon, joon, oon, on, n 으로 총 8가지가 있고, 이를 사전순으로 정렬하면, aekjoon, baekjoon, ekjoon, joon, kjoon, n, on, oon이 된다.
문자열 S가 주어졌을 때, 모든 접미사를 사전순으로 정렬한 다음 출력하는 프로그램을 작성하시오.
풀이 과정
- 나의 풀이
# 11656 접미사 배열
import sys
input = sys.stdin.readline
text = input()
text_lst = list(text)
result = [0]*(len(text_lst))
for j in range(len(text_lst)) :
result[j] = text_lst[j:-1]
result_sorted = sorted(result)
for i in range(1,len(text_lst)) :
print("".join(result_sorted[i]))
리스트화시켜서 슬라이싱한 뒤 오름차순으로 정렬해주고 join함수를 이용하여 출력해주면 된다!!!
후기
join함수는 많이 쓰이는듯. "리스트원소 사이에 들어갈 것".join(리스트)를 통해 쉽게 사용가능!!
'Algorithm > string' 카테고리의 다른 글
[백준] 11720 숫자의 합 (C++) (0) | 2022.01.18 |
---|---|
[백준] 11718 그대로 출력하기 (C++) (0) | 2022.01.13 |
[백준] 11652 카드 (파이썬 Python) (0) | 2021.08.01 |
[백준] 1946 신입사원 (파이썬 Python) (0) | 2021.07.29 |
[백준] 10989 수 정렬하기 3 (파이썬 Python) (0) | 2021.07.27 |