문제 설명
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰 것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를 들어 n이 118372면 873211을 리턴하면 됩니다.
제한 조건
- n은 1이상 8000000000 이하인 자연수입니다.
입출력 예
n | return |
118372 | 873211 |
제가 작성한 코드는 아래와 같습니다.
solution.py
def solution(n):
sorted_digits = sorted(str(n), reverse=True)
sorted_n = int("".join(sorted_digits))
return sorted_n
프로그래머스에서 좋아요를 가장 많이 받은 코드는 다음과 같습니다!
def solution(n):
ls = list(str(n))
ls.sort(reverse = True)
return int("".join(ls))
이 코드도 설명드리겠습니다! (아시는 분들은 넘어가시면 됩니다 ㅎㅎ)
위 solution 함수는 하나의 정수 n을 입력받아
그 숫자의 각 자릿수를 내림차순으로 정렬한 새로운 숫자를 반환합니다!
그리고 숫자를 문자열로 변환 후 리스트로 변환하는데,
ls = list(str(n)) : 입력받은 숫자 n을 먼저 문자열로 변환한 후, 이를 리스트로 만듭니다.
이렇게 하면 각 자릿수가 리스트의 원소가 됩니다.
ls.sort(reverse = True) : 리스트의 sort 메서드를 사용하여 원소들을 내림차순으로 정렬합니다.
(reverse = True 옵션은 정렬 순서를 내림차순으로 설정합니다)
그리고 리스트를 문자열로 변환 후 정수로 변환하는데,
return int("".join(ls)) : 정렬된 리스트를 문자열로 변환한 후, 다시 정수형으로 변환하여 반환합니다.
join 메서드는 리스트의 원소들을 하나의 문자열로 연결합니다.
예시를 통해 좀 더 쉽게 알아보겠습니다!
예를 들어, solution(3142)을 호출하면 어떻게 될까요?
- 3142는 문자열 '3142'로 변환되고, 이는 리스트 ['3', '1', '4', '2']로 변환됩니다.
- 리스트는 ['4', '3', '2', '1']로 내림차순 정렬됩니다.
- 위 리스트를 문자열 '4321'로 만들고, 이를 다시 정수 4321로 변환하여 반환합니다.
위 코드 구조 같은 경우 다른 문제 해결에도 많이 쓰이니까 숙지하시면 좋을 것 같습니다! ㅎㅎ

'코딩테스트 > 프로그래머스 문제' 카테고리의 다른 글
문자열을 정수로 바꾸기 (0) | 2023.12.08 |
---|---|
두 정수 사이의 합 (0) | 2023.12.04 |
자릿수 더하기 (1) | 2023.12.02 |
x만큼 간격이 있는 n개의 숫자 (0) | 2023.12.01 |
자연수 뒤집어 배열로 만들기 (0) | 2023.11.29 |