[프로그래머스] 가장 큰 수
문제정보
문제풀이
[3, 30, 34, 5, 9]의 가장 큰 값은 “9534330”이다. 하지만 앞자리 숫자간 비교를 위해 String으로 변환 후 desc 정렬하여 덧붙이면 “9534303”이 된다. 그래서 Comparator를 아래와 같이 구현하여 두 개의 값을 붙였을 때의 값을 비교한다.
import java.util.*;
class Solution {
public String solution(int[] numbers) {
String answer = "";
String[] sarr = new String[numbers.length];
for(int i=0; i<numbers.length; i++){
sarr[i] = String.valueOf(numbers[i]);
}
Arrays.sort(sarr, new Comparator<String>(){
@Override
public int compare(String s1, String s2){
return (s2+s1).compareTo(s1+s2);
}
});
if(sarr[0].startsWith("0")){
answer = "0";
}else{
for(String s : sarr) answer += s;
}
return answer;
}
}
Leave a comment