Algorithm/백준 알고리즘

[프로그래머스] 가장 큰 수 (자바) / 정렬

미스터로즈 2021. 10. 3. 10:48

문제

 

입력&출력

 

문제풀이

import java.util.*;
class Solution {
    public String solution(int[] numbers) {
        String answer = "";
        String[] tmp = new String[numbers.length];
        for(int i = 0 ; i < numbers.length;i++){
            tmp[i]=Integer.toString(numbers[i]);
        }
        Arrays.sort(tmp,(s1,s2)->(
           (s2+s1).compareTo(s1+s2) 
        ));
        if(Integer.parseInt(tmp[0])==0){
            return "0";
        }
        
        for(int i = 0 ; i < tmp.length;i++){
            answer+=tmp[i];
        }
        return answer;
    }
}

 

※ 내 생각 

정렬할 때. 자릿수 마다 비교하는 작업을 진행했는데 자릿수 길이가 각각 달라서 잘 안풀렸어요.

다른 방법으로 문자열 자체를 합쳐 본 결과에 따라서 정렬을 진행한다는 아이디어가 너무 좋네요

예를 들어 6 5 가 있을때 65 , 56 로 합쳐지는데 65가 더 크기 때문에 6이 더 앞으로 갑니다..