문제 설명

함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.

제한 조건

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

입출력 예

n return
118372 873211

문제 풀이

이해와 접근

- 정수형 type을 문자열 type으로 변환해서 정렬 (int -> str)

- 각 자릿수를 큰것부터 작은 순으로 정렬 => sort를 descending으로 (reverse = True)

- 정렬 후 리스트에 담기면 공백을 기준으로 join한 후, 문자열 type을 다시 정수형 type으로 변환 (str -> int)

코드

n = 118372

# 문자열 type으로 변환
str(n)
>>> '118372'

# 내림차순으로 정렬
sorted(str(n), reverse = True)
>>> ['8', '7', '3', '2', '1', '1']

# 리스트를 공백 기준으로 join
"".join(sorted(str(n), reverse = True))
>>> '873211'

# join된 문자열을 정수형 type으로 변환
int("".join(sorted(str(n), reverse = True)))
>>> 873211
def solution(n):
    return int("".join(sorted(str(n), reverse = True)))
728x90
복사했습니다!