문제 설명
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요.
제한 조건
- n은 1이상 8000000000 이하인 자연수
입출력 예
n | return |
118372 | 873211 |
내 풀이
정수 n을 문자열로 바꾸고 정렬한 뒤, [::-1]을 통해 뒤집어 리스트 생성
리스트 요소를 가져와 빈 문자열에 이어붙임
문자열을 int 타입으로 변환하여 반환
def solution(n):
l = sorted(str(n))[::-1]
num = ""
for i in range(len(l)):
num+=l[i]
return int(num)
다른 사람 풀이
정수 n을 문자열로 바꾸어 리스트로 생성
리스트를 정렬하는 리스트.sort()와 reverse=True 옵션을 통해 내림차순 정렬 (생략 시 오름차순)
join을 통해 리스트의 요소 하나하나를 합쳐 하나의 문자열로 생성
이때 "" 는 구분자 (구분자가 "_" 이었다면 8_7_3_2_1_1)
def solution(n):
ls = list(str(n))
ls.sort(reverse = True)
return int("".join(ls))
728x90
'코딩테스트' 카테고리의 다른 글
[프로그래머스/파이썬] 나머지가 1이 되는 수 찾기 (0) | 2022.09.19 |
---|---|
[프로그래머스/파이썬] 하샤드 수 (0) | 2022.09.18 |
[프로그래머스/파이썬] 문자열 내 p와 y의 개수 (0) | 2022.09.18 |
[프로그래머스/파이썬] 자연수 뒤집어 배열로 만들기 (0) | 2022.09.18 |
[프로그래머스/파이썬] 정수 제곱근 판별 (0) | 2022.09.17 |