백준 (코테)

30. 접미사 배열(11656)

코딩의 세계 2024. 9. 23. 17:22
문제.

접미사 배열은 문자열 S의 모든 접미사를 사전순으로 정렬해 놓은 배열이다.
baekjoon의 접미사는 baekjoon, aekjoon, ekjoon, kjoon, joon, oon, on, n 으로 총 8가지가 있고, 이를 사전순으로 정렬하면, aekjoon, baekjoon, ekjoon, joon, kjoon, n, on, oon이 된다.
문자열 S가 주어졌을 때, 모든 접미사를 사전순으로 정렬한 다음 출력하는 프로그램을 작성하시오.

답:

s = input()
answer = []

for i in range(len(s)):
    answer.append(s[i:])

answer.sort()

for i in answer:
    print(i)
  1. 어떻게 input()으로 받은 문자열의 맨 앞 글자 한 자씩 빼서 저장시킬까를 고민해봐야 함.
    -> 앞글자를 제외한 나머지를 list에 넣을 수 있다. > s[i: ]
  2. 알파벳을 어떻게 정렬시킬까를 고민.
    -> list의 함수 중 정렬시킬 수 있는 sort() 함수가 있다. 이 함수를 이용해서 정렬시킨다.

즉, s로 입력받고 문자열 크기 동안 맨 앞 글자씩 빠져서 추가가 되는 것이며,

이후 sort 함수를 이용해서 answer를 정렬해준다. 이후 프린트해 주면 된다.

확실히 파이썬에서 이런 내장 함수를 이용해줘서 쉽게 푼 문제가 많다. 이게 파이썬의 고유적인 강점인 것 같다.