Algorithm/Programmers

[Python] 문자열 내 마음대로 정렬하기

느낌표 공장장 2021. 4. 11. 19:16
def solution(strings, n):
    answer = sorted(sorted(strings), key = lambda x : x[n])
    return answer

처음에 for문 돌리다가 더 간단하게 할 방법 없을까 머리 쥐어짠 문제


풀이

1. 먼저 strings를 sorted로 해주어 정렬해준뒤

2. 람다 식을 이용해 n 번째 문자로 다시 정렬해준다.

 

왜 sorted를 두 번 해줄까?

sorted 한번만 해줬을 경우, 답 ["abcd", "abce", "cdx"] 와는 다르다.

 문자열 2번째 기준으로 정렬되었으나, 2번째 문자열이 같을 경우, 사전 순으로 정렬되어야 하는데 그것이 적용 되어 있지 않다.  

(abce와 abcd 중 사전적으로는 abcd가 앞) 따라서 sorted를 한 번 더 해준다.