💡 Codeing Test/프로그래머스

[프로그래머스] 가장 큰 수 (python)

밈98 2023. 2. 5. 20:48
문제

https://school.programmers.co.kr/learn/courses/30/lessons/42746

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

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

풀이:

 

numbers의 값들을 str 변경 이후 str 오름차순 정렬을 해준다.

['9', '5', '34', '30', '3'] 이 된다

이 과정에서 배열 값 안의 십의자리수 이상인 수들의 두번째자리수이상값들의 크기를 비교해 줘야한다.

 

이럴때 모든 값들을 같은 수 반복 3번을 해줘야한다. (str 일때 비교방법)

999 555 343434 303030 333

그럼 343 , 303 , 333 까지 비교가 되는데

이로 인해 333 이 303보다 더 큰수로 인식이 된다

 

몰랐던부분: str 비교, lambda사용, 같은 값 3번반복(이유는 numbers의 길이 1000이하이므로)