출처: https://meyouus.tistory.com/64 [정보 공유 - For Me For You For Us]
본문으로 바로가기

 

처음에는 문제 자체를 이해하는데 조금 시간이 걸렸다. 이후에는 조금 막막했는데, 예전에 sorted()와 lambda를 가지고 공부를 했던 기억이 나서 매우 간단하게 풀었다:

def solution(strings, n):
    strings.sort()
    return sorted(strings, key = lambda x: x[n])

우선, strings를 sort()를 시켜주어야 한다. 왜냐하면 입출력 2번째 예시를 보면 ["abce", "abcd", "cdx"]라고 되어 있는데 뒤의 sorted()를 사용하게 된다면 2번째 인덱스 값은 "c", "c", "x"로 나와, "abce", "abcd" 순서대로 그대로 나오게 되기 때문이다. 따라서, 문제에서 요구한바는 만약 인덱스 값이 같으면 사전순으로 나열하기를 원했으므로, 우선 sort() 함수를 이용하여 사전순으로 배치를 해주어야 한다.

 

sorted()함수의 경우, 우선 strings라는 리스트를 통과 시켜주고, key = lambda x: x[n]를 통해, x[n]의 순서의 오름차순으로 정렬을 한다는 의미를 가지고 있다. lambda는 간단하게 말해 또 다른 함수인데, 매우 간단하게 표현한 것이다. (기회가 된다면 다른 포스팅에서 sorted()와 lambda를 간략하게 다루어볼 예정이지만, 다른 블로그에 잘 정리된 것들도 많으니 참고하길 바란다)

 

행운인지는 모르겠지만, 프로그래머스 다른사람의 풀이를 보니 매우 비슷한 방식의 풀이가 가장 많은 좋아요를 받아 매우 뿌듯했다.