파이썬 백준 11656번
실버 4
https://www.acmicpc.net/problem/11656
문제 보기
분류: 문자열, 정렬
문제 풀기
생성된 접미사를 저장할 리스트 s_ls 생성하고 첫 문자 s 를 저장한다.
s 의 문자 길이 - 1 만큼 for loop 을 실행하고, 이때 문자의 맨 앞자리를 하나씩 제거하고 이를 리스트에 누적 시킨다.
사전순으로 정렬하기 위해 sort() 함수를 이용하여 정렬을 한 후, 순서대로 출력한다.
코드 보기
import sys
inputdata = sys.stdin.readline
def fnSuffixArray(s):
s_ls = [s]
for _ in range(len(s) - 1):
s = s[1:] ## 맨 왼쪽 문자 하나 제거 후 저장.
s_ls.append(s)
# print(s_ls) # test print
s_ls.sort()
for x in s_ls:
print(x)
if __name__ == "__main__":
s = str(inputdata().strip())
# print(s) # test print
fnSuffixArray(s)
# baekjoon
# aekjoon
# baekjoon
# ekjoon
# joon
# kjoon
# n
# on
# oon
'공부하기 > 백준' 카테고리의 다른 글
[Python] 백준 풀기 14719 - 빗물 (0) | 2022.12.22 |
---|---|
[Python] 백준 풀기 1439 - 뒤집기 (0) | 2022.12.21 |
[Python] 백준 풀기 2748 - 피보나치 수 2 (0) | 2022.12.19 |
[Python] 백준 풀기 1358 - 하키 (0) | 2022.12.18 |
[Python] 백준 풀기 2775 - 부녀회장이 될테야 (0) | 2022.12.17 |