JAVA/Algorithm

[프로그래머스/java] 정수 내림차순으로 배치하기

nang. 2020. 12. 2. 21:59
반응형
SMALL

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

 

코딩테스트 연습 - 정수 내림차순으로 배치하기

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

programmers.co.kr

 

  • 숫자 배열의 숫자들을 StringBuilder를 이용하여 문자열로 하나씩 붙이기
    • sb.append(numbers[i])

 

  • 문자열을 long형으로 변환
    • Long.parseLong(sb.toString())

 

import java.util.*;

class Solution {
    public long solution(long n) {
        
        String str = "" + n;
        int size = str.length();
        int[] numbers = new int[size];
        
        for(int i = 0; i < size; i++) { // 숫자의 일의자리 구하는 방식으로 배열에 하나씩 넣어주고
            numbers[i] = (int)(n % 10);
            n /= 10;
        }
        
        Arrays.sort(numbers); // 오름차순 정렬
        
        StringBuilder sb = new StringBuilder();
        
        for(int i = size - 1; i >= 0; i--) { // 내림차순 정렬을 위해 거꾸로
            sb.append(numbers[i]); // 문자열 방식으로 붙여주기
        }
        
        long answer = Long.parseLong(sb.toString()); // 문자열을 long형으로 변환
        
        return answer;
    }
}
반응형
LIST