취준/프로그래머스
[프로그래머스 Programmers][Python] 문자열 내 마음대로 정렬하기
puff
2020. 1. 29. 21:39
문제 : https://programmers.co.kr/learn/courses/30/lessons/12915
이 문제는 파이썬에서 간단하게 풀 수 있다.
sorted(strings, key=lambda a:(a[n],a) ) 로 한줄로 정렬해서 뭔말인지 모를 수 있는데 그냥 분해해서 보면 간단하다.
- sorted(iterable) -> iterable Iterable한, list 같은 데이터를 정렬해서 반환한다.
- (obj.sort()는 반환 없이 obj 정렬, 조심하자. )
- key= 이 인자는 "어떤 조건으로 정렬할건지" 라는것을 받는다.
- lambda a: 람다, 익명함수 뭐 이런 함수형 언어 개념 조금인데, 함수 이름은 필요없고, iterable 에서 인자 하나를 a 라는 이름으로 받는다는 뜻이다.
- 더 궁금하면 찾아보자. 함수형 언어, 함수형 프로그래밍같은걸로 찾으면 나온다.
- (a[n],a) 첫번째는 a[n]을 오름차순으로, 첫번째 조건이 같으면 a를 오름차 순으로 정렬하라는 뜻이다.
- 변환할 인자가 하나면 괄호는 생략할 수 있다. lambda a : (a[n]) -> lambda a: a[n]
def solution(strings, n):
return sorted(strings, key=lambda a: (a[n],a) )