자리수를 큰 것부터 작은 순으로 정렬한 새로운 정수를 리턴하라.
예를들어 n이 118372면 873211을 리턴하면 됩니다.
이전에 풀었던 자리수 더하기 문제와 비슷하게 자리수를 정렬하려면 문자형(str)
으로 접근하는것이 핵심포인트다.
이후, sorted
를 사용해 정렬하고 나중에는 ''.join
을 이용해 하나로 뭉쳐줬다. 하지만 문제에서 정수로 리턴하라고 했기때문에 int
형을 다시 붙여줘야한다.
다른 사람의 코드를 보며 배운 점은, sorted
를 사용하면 list
를 자동으로 반환해주기 때문에 따로 list
를 선언 할 필요가 없다는 점이었다. 또, map
함수를 사용하지 않았는데 이유는 str
을 바로 int
형으로 바꿔주지 않고 제일 마지막에 int
형으로 바꿔주기때문에 사용하지 않았다.
list, map
만 빠져도 이전보다 간결한 코드가 되기 때문에 가독성이 좋아지는것을 확인 할 수 있다.
# 나의 코드
def solution(n):
return int(''.join(sorted(list(map(str, str(n))), reverse=True)))
# 다른사람의 코드
def solution(n):
return int(''.join(sorted(str(n), reverse=True)))