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

제한 조건
n은 1이상 8000000000 이하인 자연수입니다.


입출력 예

n return
118372 873211

 

def solution(n):

    numberlist = [int(i) for i in str(n)] # ex. ['1', '1', '8', '3', '7', '2']
    result = ''

    # max() 사용하기
    for i in range(len(numberlist)):
        result += str(max(numberlist)) # 현재 리스트에서 가장 큰 값 찾아 결과 문자열에 합치기
        numberlist.remove(max(numberlist)) # 윗줄에서 사용된 최댓값은 제거하고 새로운 리스트로 다시 for문 돌며 max찾기.

    return int(result)

 

>>> 참고!

sort를 사용했어야했는데 생각하지 못했던 것 같다.

다시 풀이한 코드는

def solution(n):

    return int(''.join(sorted(str(n),reverse=True))) # reverse=True해서 내림차순으로

+ Recent posts