본문 바로가기

Python

프로그래머스 - 문자열 내 마음대로 정렬하기

문제

https://school.programmers.co.kr/learn/courses/30/lessons/12915

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

해설

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

 

sorted 메서드를 사용해서 원본 배열은 그대로 두고 새로운 배열을 만들어서 answer에 할당한다.

 

sorted 메서드 2번째 인자로, 정렬 기준을 추가해줄 수 있다.

key 인자로 비교함수를 넣어주면 되는데, lambda(람다) 익명함수로 넣어주었다.

 

문제에서 우선 n번째 인덱스의 문자를 기준으로 정렬을 하라고 했기 때문에 lambda 함수에서 x[n]을 작성하였고,

만약 x[n]이 동일한 경우 2번째 기준으로 해당 문자의 사전순을 기준으로 정렬하라고 했으므로 x를 추가했다.

 

lambda 함수에 반환값으로 튜플로 복수의 기준을 설정할 수 있다.