본문 바로가기

알고리즘 공부/프로그래머스 > Python3

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

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

 

코딩테스트 연습 - 문자열 내 마음대로 정렬하기

문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 [sun, bed, car]이고 n이 1이면 각 단어의 인덱스 1

programmers.co.kr

 

[정답1]

 

1. strings을 sort한다.

2. strings에서 매개변수 x를 전달받아 x[n]를 리턴해서 key로 받아 이를 기준으로 sort한다.

3. strings를 answer에 넣어준다.

4. answer를 return한다.

 

 

[정답2]

 

1. strings에서 매개변수 x를 전달받아 x[n],x를 리턴해서 key로 받아 먼저 x[n]를 기준으로, 그 다음 x를 기준으로 sort해서 answer에 넣어준다.

2. answer를 return한다.


람다 함수 lambda

 

이름 없는 한 줄 짜리 함수

형태 : lambda (매개변수) : (결과가 return되는 수식)

ex) lambda x,y : x+y → 매개변수 x,y를 전달받아 x+y를 return

    lambda x : x[n] → 매개변수 x를 전달받아 x[n]를 return

 

<각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하는 방법>

1) strings.sort(key=lambda x : x[n]) → 매개변수 x를 전달받아 x[n]를 리턴해서 key로 받아 이를 기준으로 sort한다.

2) sorted(strings,key=lambda x : (x[n],x))매개변수 x를 전달받아 x[n],x를 리턴해서 key로 받아 먼저 x[n]를 기준으로, 그 다음 x를 기준으로 sort한다.