코딩 테스트
(Java) 프로그래머스 가장 큰 수
로승리
2021. 10. 19. 18:37
문제가 복잡하지 않아서 만만하게 봤다가 꽤나 시간이 걸렸다.
처음에 숫자를 문자로 변환하는 방법을 생각하지 못하고 삽질을 하다가
다른분들의 코드를 보고 Comparator 인터페이스를 이용해서 풀었다.
최종 코드
import java.util.Arrays;
import java.util.Comparator;
class Solution {
public String solution(int[] numbers) {
StringBuilder sb = new StringBuilder();
// 숫자를 문자열로 변환
String[] temp = new String[numbers.length];
for(int i=0; i<numbers.length; i++) {
temp[i] = Integer.toString(numbers[i]);
}
// 정렬 comparator를 이용해서 비교
Arrays.sort(temp, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return ((o2 + o1).compareTo(o1 + o2));
}
});
// 0이 여러개일경우 0으로 리턴
if(temp[0].equals("0")) {
return "0";
}
for(int i=0; i<temp.length; i++) {
sb.append(temp[i]);
}
return sb.toString();
}
}