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

김보람·2022년 4월 14일
0

Python

목록 보기
10/39

<문제>

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

<풀이>

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

<다른 풀이>

방법 1.
def solution(n):
    return list(map(int, reversed(str(n))))
방법 2.
def solution(n):
    answer = ''
    lst = []

    while n > 0:
        r = n % 10
        n = n // 10
        lst.append(r)

    lst.sort()
    lst.reverse()

    for j in range(0, len(lst)):
        answer += str(lst[j])

    return int(answer)

<개념>

join 함수

join함수를 쓰기 위해서는 리스트안의 값이 꼭 string 형태여야한다.

내가 쓴 코드 설명
 arr = list(str(int(n))) 
 # 정수(n)의 형태를 string 형태로 바꾼 후, list 형태로 저장함.
 
 arr.sort(reverse=True)
 # sort를 이용하여 작은 숫자부터 정렬을 하되, reverse=True에 의해 큰 숫자부터 정렬하게 함. 
#이때 리스트 형식으로 출력됨 예) ['8','7','2','1','1']

 return int("".join(arr))
 # join 함수를 통해 string 형태로 변환되며, 리스트 안 값들이 서로 붙음 예) 87211
 # 정수 값으로 반환하라고 하였으므로, int형식으로 출력함.

profile
starry_developer

0개의 댓글