[프로그래머스] 가장 큰 수
2020. 7. 9. 13:03ㆍ프로그래머스/LEVEL 2
import java.util.*;
class Solution {
public String solution(int[] numbers) {
String answer = "";
String[] numString = new String[numbers.length];
for(int i=0; i<numString.length; i++){
numString[i] = Integer.toString(numbers[i]);
}
Arrays.sort(numString, new Comparator<String>(){
public int compare(String x, String y){
return (y+x).compareTo(x+y);
}
});
if(numString[0].charAt(0)=='0'){
return "0";
}else{
for(int i=0; i<numString.length; i++){
answer += numString[i];
}
}
return answer;
}
}
1. 정렬을 다루는 문제
2. 앞에숫자+뒤에숫자와 뒤에숫자+앞에숫자의 크기를 비교하여 배열을 정렬한다.
3. 문자열의 형태를 정렬하므로 compareTo를 통해 사전순 정렬한다.
4. 정렬을 다했는데 맨 앞자리가 0 인경우 "0"을 리턴하게 한다. (0 뒤에 0이 더있을 수 있지만 문자열이므로 00000000 이런식으로 answer이 정해질 수 있기 때문)
'프로그래머스 > LEVEL 2' 카테고리의 다른 글
[프로그래머스] 다음 큰 숫자 (0) | 2020.06.30 |
---|---|
[프로그래머스] 숫자 야구 (0) | 2020.06.22 |
[프로그래머스] 구명보트 (0) | 2020.06.22 |
[프로그래머스] 폰켓몬 (0) | 2020.04.13 |
[프로그래머스] 점프와 순간이동 (0) | 2020.04.13 |