프로그래머스 공부/Python

[Level 1 / Python] 정수 내림차순으로 배치하기

#자유의날개 2019. 10. 15. 19:06
반응형

문제 설명

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

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

출처 : https://programmers.co.kr/learn/courses/30/lessons/12933

풀이 방법

python의 리스트 정렬을 이용하여 풀었습니다. 여기서 list.sort()와 sorted(list)의 차이를 알아보겠습니다.

1
2
3
4
5
6
7
= [4132]
a.sort() # 반환값 : None
print(a) # [1, 2, 3, 4]
 
= [4132]
sorted(b) # 반환값 : [1, 2, 3, 4]
print(b) # [4, 1, 3, 2]
cs

list.sort()는 반환값은 None이지만 원래 리스트의 순서를 정렬합니다. 반면 sorted(list)는 정렬된 리스트를 반환하지만 원래 리스트에는 영향을 주지 않습니다. 필요에 따라 사용하면 될 것 같습니다.

1
2
3
4
5
6
7
8
9
= [4132]
sorted(c, reverse=True) # 반환값 : [4, 3, 2, 1]
sorted(c, reverse=False) # 반환값 : [1, 2, 3, 4]
 
= [4132]
d.sort(reverse=False) # 반환값 : None
print(d) # [1, 2, 3, 4]
d.sort(reverse=True) # 반환값 : None
print(d) # [4, 3, 2, 1]
cs

기본적으로 오름차순 정렬(reverse=False)이며 메서드 안에 reverse=True를 넣어 내림차순 정렬을 할 수 있습니다.

소스 코드

1
2
3
4
5
6
def solution(n):
    answer = ''
    n_sort = sorted(list(str(n)), reverse=True)
    for j in n_sort:
        answer += j
    return int(answer)
cs
반응형