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

애이용·2021년 3월 15일
0

programmers

목록 보기
5/9
post-thumbnail

문제 링크

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

간단한 3줄이지만.. 나는 못 풀었다.
정말 복습 필요하구
나는 32, 3, 34 이러한 배열일 때 34, 3, 32 순으로 정렬이 되어야하는데
어떻게 정렬을 시킬지 전혀 떠올리지 않았다.

  • 이 숫자 배열을 문자열로 만든 후 [32, 3, 34] -> ['3', '32', '34']
numbers = list(map(str, numbers))
  • 각 문자열을 *4 한 문자열을 기준으로,
    ['3', '32', '34'] -> ['3333', '32323232', '34343434']
    내림차순 정렬을 하자.
    ['3333', '32323232', '34343434'] -> ['32323232', '3333', '34343434']
numbers.sort(key=lambda x: x*4, reverse=True)

이렇게 하면 바로 문제에서 원하는 대로 정렬을 할 수 있게 된다!

[12, 121] 또한 내림차순 정렬을 올바르게 할 수 있다.

꼭 복습하자..

! lambda x: x*2하면 1~6번 케이스가 실패하게 된다.

profile
로그를 남기자 〰️

0개의 댓글