{프로그래머스} 정렬 > 가장 큰 수 (Java, JavaScript ES5)

문제 링크

역시나 자바스크립트로 먼저 풀었고, 자바로 다시 풀었다.(문법외에 차이 없음)
핵심은 정렬을 하되, 문자열로 바꿔서 a와 b를 앞뒤로 바꿔 더한 값을 내림차순으로 정렬하면 된다. (정렬을 이렇게 쓰다니)

JavaScript

function solution(numbers) {
    var answer = '';
    var index;
    
    for(index = 0; index < numbers.length; index = index + 1){
        numbers[index] = numbers[index].toString();
    }
    numbers.sort(function(a, b){
        return ( b + a ) - ( a + b );
    });
    answer = numbers[0] === '0' ? '0' : numbers.join('');
    return answer;
}

Java

import java.util.Arrays;
import java.util.Comparator;

class Solution {
    public String solution(int[] numbers) {
        String answer = "";
        String[] strings = new String[numbers.length];
        
        for(int index = 0; index < numbers.length; index = index + 1){
            strings[index] = String.valueOf( numbers[index] );
        }
        
        Arrays.sort(strings, new Comparator<String>(){
            @Override
            public int compare(String a, String b) {
                // return a - b;
                return (b + a).compareTo(a + b);
            }
        });
        
        answer = strings[0].equals("0") ? "0" : String.join("", strings);
        
        return answer;
    }
}

좋은 웹페이지 즐겨찾기