카테고리 없음

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

주니어주니 2023. 8. 1. 20:41

 

 

 

* 내풀이 

머리가 안돌아가서 굉장히 이상하게 풀었다

import java.util.*; 

class Solution {
    public long solution(long n) {
        String s = Long.toString(n);        // "118372"
        int[] arr = new int[s.length()];    
        int max = 0; 

        for(int i=0; i<s.length(); i++) {
            arr[i] = s.charAt(i) - '0';     // [1,1,8,3,7,2]
            max = Math.max(max, arr[i]);
        }

        for(int i=0; i<arr.length-1; i++) {
            for(int j=i+1; j<arr.length; j++) {
                if (arr[i] < arr[j]) {
                    int temp = arr[i]; 
                    arr[i] = arr[j];
                    arr[j] = temp;          // [8,7,3,2,1,1]
                }
            }
        }

        String arrToStr = "";
        for(int i=0; i<arr.length; i++) {
            arrToStr += arr[i];
        }

        return Long.parseLong(arrToStr);

    }
}

 

 

 

* 다른사람 풀이

import java.util.*;

class Solution {
    public long solution(long n) {
        String[] arr = String.valueOf(n).split("");
        Arrays.sort(arr);
        
        StringBuilder sb = new StringBuilder();
        for(String s : arr) {
            sb.append(s);
        }
        
        return Long.parseLong(sb.reverse().toString());
    }
}

 

StringBuilder !!