알고리즘

[알고리즘] 프로그래머스 - 가장 큰 수

j9972 2022. 8. 3. 15:19
728x90

문제

가장 큰수

접근

1. numbers의 인자들을 문자열 리스트로 변경을 한다

2. 문자열의 리스트들을 *3 을 해줘서 각 자리의 앞자리수 즉, [0]의 값을 아스키 코드로 비교를 하여 최고자리수를 기반으로 내림차순 정렬을 한다

 

풀이

def solution(numbers):
    return str(int(''.join(sorted(list(map(str, numbers)), key=lambda x: x*3, reverse=True))))
# x*3의 의미는 만약에 6, 10, 2  -> 666, 101010, 222
# str(int()) 를 쓴 이유는 '0000' -> '0' 으로 변경을 위함
# 문자열 비교연산의 경우엔 첫번째 인덱스인 666[0]인 6과 101010[0]인 1과 222[0]인 2를 ascii숫자로 바꿔서 비교합니다.
# #물론 같으면, 다음 인덱스도 비교합니다. 비교한 결과 [6, 2, 10]의 순으로 정렬됩니다