문제.
접미사 배열은 문자열 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)
- 어떻게 input()으로 받은 문자열의 맨 앞 글자 한 자씩 빼서 저장시킬까를 고민해봐야 함.
-> 앞글자를 제외한 나머지를 list에 넣을 수 있다. > s[i: ] - 알파벳을 어떻게 정렬시킬까를 고민.
-> 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 |