어떤 문자열에 대해서 접미사는 특정 인덱스부터 시작하는 문자열을 의미합니다. 예를 들어, "banana"의 모든 접미사는 "banana", "anana", "nana", "ana", "na", "a"입니다.
문자열 my_string이 매개변수로 주어질 때, my_string의 모든 접미사를 사전순으로 정렬한 문자열 배열을 return 하는 solution 함수를 작성해 주세요.
sort와 sorted 비교분석
| 종류 | sort | sorted |
| 적용대상 | list | list뿐만 아니라 튜플, 문자열, 딕셔너리 등 반복 가능한 모든 객체 |
| 반환값 | None (정렬된 값을 반환하지 않고, 원본 리스트를 직접 정렬하여 변경함) |
정렬된 새로운 리스트를 반환 (원본 데이터는 변경되지 않음) |
| 사용 방법 | list.sort() | sorted(iterable) |
- key 매개변수
- key를 매개변수로 받아서 정렬 기준을 사용자가 정의할 수 있습니다.
- 이 매개변수에는 각 항목에 적용할 함수를 받으며, 이 함수의 반환값을 기준으로 정렬이 이루어집니다.
# 예시: 문자열을 길이에 따라 정렬
words = ["apple", "banana", "cherry", "date"]
sorted_words = sorted(words, key=len)
print(sorted_words) # ['date', 'apple', 'cherry', 'banana']
- lambda와 함께 사용
- key 매개변수와 함께 lambda 함수를 사용하면, 더욱 복잡한 정렬기준을 정의할 수 있습니다.
# 예시: 튜플의 두 번째 항목을 기준으로 정렬
pairs = [(1, 2), (3, 1), (5, 3), (4, 2)]
sorted_pairs = sorted(pairs, key=lambda x: x[1])
print(sorted_pairs) # [(3, 1), (1, 2), (4, 2), (5, 3)]
- reverse 매개변수
- reverse=True를 인자로 전달하면 내림차순으로 정렬할 수 있습니다.
numbers = [3, 1, 4, 1, 5, 9]
sorted_numbers = sorted(numbers, reverse=True)
print(sorted_numbers) # [9, 5, 4, 3, 1, 1]
- 리스트 일부만 정렬
- 슬라이싱과 함께 sort()를 사용할 수 있습니다.
numbers = [5, 3, 8, 6, 7, 2]
numbers[1:5] = sorted(numbers[1:5])
print(numbers) # [5, 3, 6, 7, 8, 2]
code - 1차
def solution(my_string):
answer = []
for i in range(len(my_string)):
answer.append((my_string[i::]))
answer.sort()
return answer
code - 2차
def solution(my_string):
return sorted([my_string[i::] for i in range(len(my_string))])
https://github.com/seonmin5/codingtest_Python
GitHub - seonmin5/codingtest_Python
Contribute to seonmin5/codingtest_Python development by creating an account on GitHub.
github.com
반응형
'Python' 카테고리의 다른 글
| [Python/level 0] 배열의 유사도 - 120903, len, 리스트 컴프리헨션 (0) | 2024.08.30 |
|---|---|
| [Python/level 0] 가까운 1 찾기 - 181898, try ~ except문, find, index (0) | 2024.08.30 |
| [Python/level 0] 가위 바위 보 - 120839, dictionary = {key:value} (0) | 2024.08.21 |
| [Python/level 1] 하샤드 수 - 12947, 리스트 컴프리헨션, sum, x%...==0 (0) | 2024.08.21 |
| [Python/level 0] 접미사인지 확인하기 - 181908, endswith, int (0) | 2024.08.21 |