문제
접미사 배열은 문자열 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의 접미사를 사전순으로 한 줄에 하나씩 출력한다.
시간 제한: 1초 / 메모리 제한: 256MB
코드 (Python3)
word=list(input())
suffix=[]
for i in range(len(word)):
suffix.append(word[i::]);
suffix.sort()
for i in range(len(suffix)):
for j in range(len(suffix[i])):
print("%c" % suffix[i][j],end='')
print("")
여담
문제를 맞추긴 했다만, 뭔가 C스러운 코드 같다.
구현은 파이썬의 강력한 기능중 하나인 슬라이싱을 이용했다. 정렬도 sort 함수를 불러와 바로 처리했다.
결과를 출력하는 과정이 C스러운 걸지도 모르겠다...ㅎ
| 코드가 이상하거나, 이해되지 않는 부분이 있다면 댓글 남겨주세요! + 더 좋은 풀이 방법이 있다면 알려주세요 :) |
'Programming > Python' 카테고리의 다른 글
| [백준] 10610번 : 30 (Python / 파이썬) (0) | 2023.06.30 |
|---|---|
| [백준] 1744번 : 수 묶기 (Python / 파이썬) (0) | 2023.06.27 |
| [백준] 10845번 : 큐 (Python / 파이썬) (0) | 2023.06.26 |
| [백준] 5893번 : 17배 (Python / 파이썬) (0) | 2023.03.25 |
| [백준] 5635번 : 생일 (Python / 파이썬) (0) | 2023.03.18 |