알고리즘 & 자료구조/문제 풀이
[프로그래머스 알고리즘 고득점 Kit][정렬][Java] 가장 큰 수
수수다
2026. 4. 28. 16:14
https://school.programmers.co.kr/learn/courses/30/lessons/42746
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
2개의 문자열을 사전순 역으로 하면
아래처럼 쉽게 할 수 있다.
길이가 달라도 2개를 이어 붙여서 판단하면 간단하게 할 수 있다.
그렇게 정렬하면
맨앞에 0이 오는 경우를 제외하고는 이어 붙여서 반환하면된다.
import java.util.*;
class Solution {
public String solution(int[] numbers) {
String[] numStr = new String[numbers.length];
for(int i=0; i<numbers.length; i++) {
numStr[i] = String.valueOf(numbers[i]);
}
Arrays.sort(numStr, (n1, n2) -> (n2+n1).compareTo(n1+n2));
if(numStr[0].equals("0")) return "0";
StringBuilder sb = new StringBuilder();
for(String num : numStr) {
sb.append(num);
}
return sb.toString();
}
}