데이터 엔지니어 이것저것

가장큰수 (python) 본문

기타/알고리즘

가장큰수 (python)

pastime 2020. 8. 24. 00:24
728x90

def solution(numbers):
    answer = "".join(sorted("".join(map(str, numbers)),reverse=True))
    return answer

기존에는 아무 생각없이 상위 소스코드로 풀었다

 

하지만 이렇게 한 경우,,, 자리수 다 자르고 해서 이상한 수,,, ex) [3,30,34,5,9] -> 9543330 이런식으로 나온다

 

def solution(numbers):
    numbers = list(map(str, numbers))
    numbers.sort(key=lambda x: x * 3, reverse=True)
    return str(int(''.join(numbers)))

다른사람의 풀이를 가져왔다.

여기서 볼곳은  numbers.sort(key=lambda x: x * 3, reverse=True)

 

즉 x : x * 3 ( 최대 1000)

 

[3,30,34,5,9] -> [333,303030,343434,555,999]이런식으로 정렬해서 높은값순으로 정렬하는것이다.

 

각각,,,아스키 코드값을 가져와서 하나씩 비교해서 정렬하는것으로 알고있다

 

ex) 333, 303030 ->

333[0] vs 303030[0] = 3동일

333[1] vs 303030[1] = 3 vs 0 -> 전자가 더 크다!

 

 

 

 

 

728x90

'기타 > 알고리즘' 카테고리의 다른 글

더 맵게 (python)  (0) 2020.08.28
H-Index (python)  (0) 2020.08.27
모의고사 (완전탐색 알고리즘, python)  (0) 2020.08.04
체육복 - python, 탐욕알고리즘  (0) 2020.07.21
전화번호 목록 (python)  (1) 2020.07.12