https://programmers.co.kr/learn/courses/30/lessons/42746
풀이
def solution(numbers):
numbers = list(map(str,numbers))
numbers.sort(key=lambda x:x*3, reverse=True)
return str(int(''.join(numbers)))
lambda 함수
lambda 인자리스트: 표현식
>>> g = lambda x: x**2
>>> print(g(8))
64
>>>
>>> f = lambda x, y: x + y
>>> print(f(4, 4))
8
람다 정의에는 "return"문이 포함되어 있지 않다. 함수가 사용될 수 있는 곳에는 어디라도 람다 정의를 넣을 수 있으며, 위의 예 처럼 변수에 할당하여 사용할 필요는 없다.
위의 풀이에서 key = lambda x:x*3 을 하는 이유는 numbers 리스트의 원소들을 문자열 변환하였기 때문이다.문자열 변환한 값을 *3 해주면 똑같은 문자열이 3번 반복된다. (ex. 7 -> 777)즉, 자릿수를 맞춰서 비교해주기 위한 방법인 것이다.
참고
https://offbyone.tistory.com/73
'STUDY > 코딩테스트 연습문제 풀이' 카테고리의 다른 글
[프로그래머스][정렬] K번째수 (0) | 2021.08.14 |
---|---|
[프로그래머스][힙] 더 맵게 (0) | 2021.08.11 |
[프로그래머스][해시] 완주하지 못한 선수 (0) | 2021.08.07 |