알고리즘/프로그래머스

프로그래머스 Level 1) 정수 내림차순으로 배치하기(Python)

luana_eun 2021. 11. 23. 22:08
728x90

문제 설명

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

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

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

 

제한 조건
  • n은 1이상 8000000000 이하인 자연수입니다.
입출력 예
n return
118372 873211

 


접근방법

파이썬에는 리스트를 내림차순으로 정렬해주는 함수가 있다. -> sort(reverse=True) 

 

정답

def solution(n):
    n = list(str(n))
    n.sort(reverse = True)
    
    return int("".join(n))

 

 

*정렬함수 sort없이 푸는 방법*

나는 해당 인덱스의 수와 그 뒤의 수를 비교해서 하나하나 교체해주는 방법으로 생각해서 풀어봤다. 

def solution(n):
    n = list(str(n))

    for i in range(len(n)-1):
        for j in range(0, len(n)-1):
            if n[j] < n[j+1]:
                c = n[j+1]
                n[j+1] = n[j]
                n[j] = c
        print(n)
    return int(''.join(n))
728x90