문제 설명
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
제한 조건
- n은 1이상 8000000000 이하인 자연수입니다.
입출력 예
n | return |
---|---|
118372 | 873211 |
문제 풀이
이해와 접근
- 정수형 type을 문자열 type으로 변환해서 정렬 (int -> str)
- 각 자릿수를 큰것부터 작은 순으로 정렬 => sort를 descending으로 (reverse = True)
- 정렬 후 리스트에 담기면 공백을 기준으로 join한 후, 문자열 type을 다시 정수형 type으로 변환 (str -> int)
코드
n = 118372
# 문자열 type으로 변환
str(n)
>>> '118372'
# 내림차순으로 정렬
sorted(str(n), reverse = True)
>>> ['8', '7', '3', '2', '1', '1']
# 리스트를 공백 기준으로 join
"".join(sorted(str(n), reverse = True))
>>> '873211'
# join된 문자열을 정수형 type으로 변환
int("".join(sorted(str(n), reverse = True)))
>>> 873211
def solution(n):
return int("".join(sorted(str(n), reverse = True)))
728x90
'Algorithm > 문제' 카테고리의 다른 글
[프로그래머스] 문자열 다루기 (Python) (0) | 2022.08.30 |
---|---|
[프로그래머스] 크레인 인형뽑기 게임 (Python) (0) | 2022.08.28 |
[백준] 9012 : 괄호 (Python) (0) | 2022.08.27 |