정수 내림차순으로 배치하기

HeeSeong·2021년 1월 23일
0

프로그래머스

목록 보기
43/97
post-thumbnail

🔗 문제 링크

https://programmers.co.kr/learn/courses/30/lessons/12933


❔ 문제 설명


함수 solution은 정수 n을 매개변수로 입력받습니다.

n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요.

예를들어 n이 118372면 873211을 리턴하면 됩니다.


⚠️ 제한사항


  • n은 1이상 8000000000 이하인 자연수입니다.



💡 풀이 (사용언어 : Java & Python)


자바에서 배열의 간단한 오름차순 정렬이면 Arrays.sort()를 이용하면 되지만, 역순이나 다른 정렬은 Comparator를 구해서 인자로 같이 주어야 한다. 역순 정렬은 다행이 Collections에 역순 정렬 Comparator를 제공하고 있다. 단, 배열의 타입이 기본타입이 아니고 참조타입이여야 한다. String으로 배열을 만들어서 조건을 만족시키고 정렬을 수행후 다시 정수로 변환하면 정답이다.

Java

import java.util.Arrays;
import java.util.Collections;

class Solution {
    public long solution(long n) {
        String[] input = String.valueOf(n).split("");
        Arrays.sort(input, Collections.reverseOrder());
        return Long.valueOf(String.join("", input));
    }
}

Python

def solution(n):
    
    lis = list(str(n))
    lis.sort()
    lis.reverse()
  
    return int(''.join(lis))
profile
끊임없이 성장하고 싶은 개발자

0개의 댓글