𝝅번째 알파카의 개발 낙서장

screen

[프로그래머스 / JAVA] Level 1 정수 내림차순으로 배치하기 (12933)

posts

알고리즘

시리즈 톺아보기

프로그래머스

프로그래머스
count

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

랭크 사용 언어
Level 1 JAVA

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

문제 설명 🔗

함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.

제한 사항 🔗

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

입출력 예 🔗

n return
118372 873211

풀이 🔗

정수를 내림차순으로 배치한다. 역순이 아니라 숫자 크기별로 내림차순하여 정렬한 후 다시 숫자로 반환해야한다.

자연수 뒤집어 배열로 만들기 문제를 풀었다면 쉽게 풀이할 수 있다.

동일하게 자릿수별로 ArrayList로 담은 이후에, Collections.sort()로 정렬한다.

이후 다시 숫자를 자릿수별로 조립하여 온전한 숫자를 반환한다. int로 반환하지 않도록 주의하자.

코드 🔗

JAVA

0import java.util.ArrayList;
1import java.util.Collections;
2
3/**
4 * 정수 내림차순으로 배치하기 클래스
5 *
6 * @author RWB
7 * @since 2021.12.13 Mon 19:04:28
8 */
9class Solution
10{
11 /**
12 * 해답 반환 메서드
13 *
14 * @param n: [long] 자연수
15 *
16 * @return [long] 해답
17 */
18 public long solution(long n)
19 {
20 long answer = 0;
21
22 ArrayList<Integer> list = new ArrayList<>();
23
24 while (n >= 10)
25 {
26 list.add((int) (n % 10));
27
28 n /= 10;
29 }
30
31 list.add((int) n);
32
33 Collections.sort(list);
34
35 for (int i = 0; i < list.size(); i++)
36 {
37 answer += list.get(i) * Math.pow(10, i);
38 }
39
40 return answer;
41 }
42}