본문 바로가기
백준 (코테)

30. 접미사 배열(11656)

by 코린이의 세계 2024. 9. 23.
문제.

접미사 배열은 문자열 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를 정렬해준다. 이후 프린트해 주면 된다.

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

'백준 (코테)' 카테고리의 다른 글

32. 최대공약수와 최소공배수(2609)  (0) 2024.09.28
31. 나머지(10430)  (1) 2024.09.27
29. 네 수(10824)  (0) 2024.09.22
28. ROT13(11655)  (0) 2024.09.20
27. 문자열 분석(10820), 단어 길이 재기(2743)  (1) 2024.09.15