𝘼𝙣𝙖𝙡𝙮𝙨𝙞𝙨/ᴀʟɢᴏʀɪᴛʜᴍ

[Programmers] 가장 큰 수 (정렬)

콜라맛갈비 2023. 8. 2. 13:52
728x90

 

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

 

프로그래머스

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

programmers.co.kr

 

def solution(numbers):
    
    return ''.join(map(str, sorted(numbers, key=lambda x : (str(x)[0], str(x), str(x)[-1]), reverse=True)))

실패할 줄 알았던... ㅎㅎ

 

 

결국 다른 사람의 힌트를 참고함!

 

 

 

 

 

 

def solution(numbers):

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

진짜 감탄했던 코드..!!!!

 

x * 3 을 쓸 생각!

 

너무 좋은 아이디어인 것 같다.

 

 

마지막 return 시 str을 int로 바꾼 뒤 다시 str로 바꾸는 이유

: '000'이나 '0' 등이 나올 경우 '0'으로 바꿔주기 위해!

 

 

 

728x90