[프로그래머스 level 2] '가장 큰 수' 풀이 - python

파이썬 라이브러리 순열로 시도했다가 실패했다
다른 사람의 풀이를 참고했다.

#from itertools import permutations

def solution(numbers):
  # 문자열로 치환하고 list로 변경
  numbers=list(map(str,numbers))
  # x*3 = 인수값이 1000이하 이므로 3자리수로 맞춘뒤 비교
  # 문자열 비교는 아스키 코드 값으로 치환되어 정렬되기 때문에 
  # 666,101010,222의 첫번째 인덱스 값으로 비교 
  # 6=86, 1=81, 2=82 =>10>2>6 순으로 정렬
  # reverse=True를 통해 내림차순 정렬해주기 -> 6<2<10
  numbers.sort(key=lambda x:x*3, reverse=True)
  
  # 모든 값이 0일 경우 (000) int로 변환한뒤 다시 문자열로 변환
  return str(int("".join(numbers)))

좋은 웹페이지 즐겨찾기