프로그래머스 | 가장 큰 수 (Java)

mul·2023년 4월 3일
0

코딩테스트연습

목록 보기
42/56

🔒 문제

프로그래머스 LV.2 정렬 가장 큰 수

🔑 해결

0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return하는 solution함수를 작성하는 문제이다.

정렬 문제임을 아는 순간 Comparator를 활용해서 풀어야겠다고 생각했다. 가장 큰 수를 만들어야 하므로, 배열이 내림차순으로 정렬되도록 Comparator를 작성하였다.

🔓 코드

import java.util.Arrays;
import java.util.Comparator;
class Solution {
    public String solution(int[] numbers) {
        String answer = "";
        
        String[] sn = new String[numbers.length];
        for (int i = 0; i < numbers.length; i++) {
			sn[i] = numbers[i] + "";
		}
        
        Arrays.sort(sn, new Comparator<String>() {

			@Override
			public int compare(String o1, String o2) {
				return (o2 + o1).compareTo(o1 + o2);
			}
		});
        
        if (sn[0].equals("0"))
        	return "0";
        
        for (String s : sn) {
			answer += s;
		}
        
        return answer;
    }
}

0개의 댓글