Programmers - 정수 내림차순으로 배치하기(Python)

문제

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

제한사항

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

입출력 예

nreturn
118372873211

✍ 코드

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

    answer.sort(reverse=True)

    answer = "".join(answer)

    answer = int(answer)

    return answer

n = 118372
print(solution(n)) 
  • n은 정수형(int) 타입이기 때문에 이 한 수안에서 숫자별로 정렬할 수는 없다. 따라서 n을 str 타입으로 변환한 후 이를 list()한 것을 answer에 할당한다.
  • 이후, answer을 내림차순 정렬하기 위해 sort(reverset=True)를 해준다.
  • answer이 list 타입이므로 한 수로 리턴해주기 위해 "".join(answer)을 해주었다.
  • 그러고나서 answer을 리턴해준다.

📝 결과

😃 느낀점

  • 처음에는 list(str(int(n)))가 아니라 list(str(n))을 해주었다. 이 때문에 테스트의 일부가 틀렸다. 아직까지도 str(n)으로만 해도 될 것 같은데, 왜 str(int(n))을 해주었는지 의문이다. 다른 분이 푼 블로그를 봐도, 본인들도 모르겠다고 했다. 이 점이 조금 답답하다.

👍 Irish의 모든 코드 보기

-> Irish Github

좋은 웹페이지 즐겨찾기