문제 : 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) )
'취준 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 Programmers][Python] 타겟 넘버 (0) | 2020.02.02 |
---|---|
[프로그래머스 Programmers][Python] 카펫 (0) | 2020.01.31 |
[프로그래머스 Programmers][Python] 땅따먹기 (0) | 2020.01.29 |
[프로그래머스 Programmers][Python] 기능개발 (0) | 2020.01.28 |
[프로그래머스 Programmers][Python] 도둑질 (0) | 2020.01.27 |