Algorithm/1일 1코테
[프로그래머스 Python] 문자열 내 마음대로 정렬하기
대인보우
2020. 9. 22. 11:15
반응형
문제
문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 [sun, bed, car]이고 n이 1이면 각 단어의 인덱스 1의 문자 u, e, a로 strings를 정렬합니다.
입출력 예시
내 답
def solution(strings, n):
sort_list = []
for s in strings:
sort_list.append(s[n] + ':' + s)
sort_list = sorted(sort_list)
answer = []
for s in sort_list:
a = s.split(':')
answer.append(a[1])
return answer
알고리즘
1. string에서 하나씩 출력하여 n번째 글자와 + 해당 단어 전체를 sort_list에 append (ex. 'a:apple', 'b:black')
2. sort_list를 sorted 함수를 통해 오름차순 정렬 (앞글자로 정렬됨)
3. split을 이용해 ':' 뒤의 단어만 출력하여 append
다른사람 풀이
def strange_sort(strings, n):
return sorted(strings, key=lambda x: x[n])
sorted에서 key값 활용이 가능했음!!!!
반응형