본문 바로가기

프로그래머스 - JAVA

코딩테스트 연습 > 정렬 > 가장 큰 수

기존 코드

import java.util.*;

class Solution {
    public String solution(int[] numbers) {
        String answer = "";
        
        String numbersSt = Arrays.toString(numbers);
        String numbersSts [] = numbersSt.substring(1, numbersSt.length() - 1).split(", ");

        Arrays.sort(numbersSts, new Comparator<String>() {
			@Override
			public int compare(String o1, String o2) {
				return ((o2 + o1).compareTo(o1 + o2));
			}
		});
        
        if(numbersSts[0].equals("0")){
            return "0";
        } else{
            answer = Arrays.toString(numbersSts).replaceAll("[^0-9]","");
        }
        return answer;
    }
}

최근 코드

import java.util.*;

class Solution {
    public String solution(int[] numbers) {
        String answer = "";
        String [] stringNumbers = new String[numbers.length];
        
        for (int i = 0 ; i < numbers.length ; i++){
            stringNumbers[i] = String.valueOf(numbers[i]);
        }
        Arrays.sort(stringNumbers, new Comparator<String>(){
            @Override
            public int compare(String o1, String o2){
                return(o2 + o1).compareTo(o1 + o2);
            }
        });
        
        if (stringNumbers[0].equals("0")){
            return "0";
        } else {
            answer = Arrays.toString(stringNumbers).replaceAll("[^0-9]", "");
        }
        
        return answer;
    }
}