문제 설명
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
제한 조건
n은 1이상 8000000000 이하인 자연수입니다.
입출력 예
n | return |
118372 | 873211 |
def solution(n):
numberlist = [int(i) for i in str(n)] # ex. ['1', '1', '8', '3', '7', '2']
result = ''
# max() 사용하기
for i in range(len(numberlist)):
result += str(max(numberlist)) # 현재 리스트에서 가장 큰 값 찾아 결과 문자열에 합치기
numberlist.remove(max(numberlist)) # 윗줄에서 사용된 최댓값은 제거하고 새로운 리스트로 다시 for문 돌며 max찾기.
return int(result)
>>> 참고!
sort를 사용했어야했는데 생각하지 못했던 것 같다.
다시 풀이한 코드는
def solution(n):
return int(''.join(sorted(str(n),reverse=True))) # reverse=True해서 내림차순으로
'프로그래머스' 카테고리의 다른 글
[프로그래머스][1단계][python] 제일 작은 수 제거하기 문제 (0) | 2023.04.04 |
---|---|
[프로그래머스][1단계][python] 정수 제곱근 판별 문제 (0) | 2023.04.04 |
[프로그래머스][1단계][python] 자연수 뒤집어 배열로 만들기 문제 (0) | 2023.03.30 |
[프로그래머스][1단계][python] 이상한 문자 만들기 문제 (0) | 2023.03.30 |
[프로그래머스][1단계][python] 약수의 합 문제 (0) | 2023.03.30 |