Skip to main content

정수 내림차순으로 배치하기

문제 설명

함수 solution은 정수 n을 매개변수로 입력받습니다.

n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요.

예를들어 n이 118372면 873211을 리턴하면 됩니다.

제한 조건

  • n은 1이상 8000000000 이하인 자연수입니다.

입출력 예

nreturn
118372873211

풀이

def solution(n):
numbers = list(str(n))
numbers.sort(reverse=True)
sum = 0
for i in numbers:
sum = sum * 10 + int(i)

return sum;

str() 함수로 n을 문자열로 변환 후 list() 함수에 매개변수로 넘겨주면

자릿수별로 쪼개져서 리스트로 변환됩니다.

그 후에 변환된 리스트를 sort() 함수로 뒤집고 뒤집어진 리스트를 순서대로 순회하면서

문자를 하나씩 꺼내서 정수로 변환해 주면 됩니다.

입출력 예 #1번으로 예를 들어보겠습니다. 정수 118372를 문자열로 변환하면 "118372"가 되고,

list("118372")를 하게 되면 ["1", "1", "8", "3", "7", "2"]가 반환됩니다.

반환된 리스트를 sort(reverse=True)로 정렬하면 ["8", "7", "3", "2", "1", "1"]이 됩니다.

그 후로 0번 index부터 순서대로 리스트 끝까지 순회하며 정수로 변환해주면 됩니다.