[프로그래머스][Python]정수 내림차순으로 배치하기

주연·2022년 2월 18일
0

Python 문제 풀이

목록 보기
7/20
post-thumbnail

문제

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

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

nreturn
118372873211

풀이

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

원래는 빈 리스트 만들고 한 숫자씩 리스트에 넣은 다음 정렬하고 붙이는 방식을 사용했는데 사람들이 질문한 글을 보고 수정했다..

1) ls = list(str(int(n)))
리스트를 만드는 과정에서 list의 함수 원형은 list([iterable])로
iterable는 반복가능한 문자열, 튜플, 딕셔너리, range()함수를 의미한다.
그래서 str(n)으로 만든 후 list로 만든다.

그런데 ls = list(str(n))이라고 작성하면 테스트 2,3,11에서 런타임 에러가 뜬다. 왜일까? 다른 사람들의 답변으로 int(n)으로 고쳐주었다.

문제에서 보면 함수 solution은 정수 n을 매개변수로 입력받습니다.라고 적혀있는데 왜 int(n)라고 써야할까...?

profile
공부 기록

0개의 댓글