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

박신희·2022년 4월 8일
0
post-thumbnail

🤜 풀이

def solution(numbers):
    arr=[str(n) for n in numbers]
    if arr.count('0')==len(arr):
        return "0"
    else:
        arr.sort(key=lambda x:x*1000,reverse=True)
        return "".join(arr)
  • if문을 넣은 건, 테스트케이스11 에서 numbers=[0,0,0]인 경우, 0을 return 해줘야 하기 때문에 따로 예외처리를 했다.
  • x*1000을 해준 이유는, numbers=[3,30,34,5,9]인 경우, x*1000을 안해준다면, 9534303이 나온다. 330을 해주기 위해서 문자열을 불려준 다음 비교를 하는 것이다. x*1000읋 해주면, [333,303030,343434,555,999]가 되겠지? 문자열 정렬을 하면 첫번째 문자부터 검사를 하기때문에 원하는 대로 정렬이 된다.
profile
log my moments 'u')/

0개의 댓글