-
[Programmers] 정렬 : 가장 큰 수Algorithm 2022. 1. 27. 16:16
def solution(numbers): numList = list(map(str, numbers)) numList.sort(key = lambda x: x*3, reverse=True) answer = str(int("".join(numList))) return answer
이건 솔직히 못풀겟어서 다른 사람 코드 보고 이해했다.
그러면 설명이라도 달아보겠다.
설명
numbers = [6, 10, 2] 이라면,
numList = ["6","10","2"] 이 될것이다
그리고 lambda x: x3 를하게 되면 "666", "101010", "222" 가 된다
이렇게 numerical한 string을 sort하게 될다면 "101010" , "222", "666" 으로 정렬하게 된다
다른 예로는 "101010", "111111", "121212", "131313"이 있다.
내부 동작을 이해했길 바란다.
그 상태에서 reverse = True가 된다면 "666", "222", "101010"이 된다.
하지만 우리는 현재 key = lambda 이기 때문에 numList = ["6", "2", "10"] 인 상태이다
이걸 인트로 바꾸어 조인하면 6210 이고 이걸 다시 문자열로 바꾸면 "6210"이 된다.'Algorithm' 카테고리의 다른 글
[Leetcode] 1375. Number of Times Binary String Is Prefix-Aligned - Swift (통과) (0) 2022.12.30 [백준] (Swift) 1697번: 숨바꼭질 - BFS 문제 (0) 2022.05.09 [Programmers] 정렬 : K번째수 (0) 2022.01.27 [Programmers/ Python] 로또의 최고 순위와 최저 순위 (0) 2021.11.30 [Programmers/ Python] 완주하지 못한 선수 (0) 2021.11.30