Algorithm & Data Structures/Programers
Lv 2. 가장 큰 수
Geisha
2024. 7. 26. 12:22

코드 흐름
- Arrays.sort에서 compareTo로 조건을 바꿀 수 있다면 상당히 쉬운 문제이고 아니면 상당히 어려운 문제이다.
- number를 하나하나 비교하는것 보다 String으로 바꾸어 숫자의 우위를 판단하는것이 더 유리해 보여 String으로 배열을 변환한다.
- Arrays.sort 에서 조건을 o1+o2와 o2+o1을 비교하는식으로 비교한다. (o2+o1).compareTo(o1+o2) 이렇게 하면 내림차순으로 가능하다.
- 만약 arr[0] 이 0이라면 이는 0밖에없는 배열이므로 return "0"
- 이후 StringBuilder를 통해 연결해주고 sb.toString을 return
import java.util.Arrays;
public class Solution {
public String solution(int[] numbers) {
String[] arr = new String[numbers.length];
for(int i = 0 ; i < numbers.length; i++)
arr[i] = String.valueOf(numbers[i]);
Arrays.sort(arr,(o1,o2)->(o2+o1).compareTo(o1+o2));
if(arr[0].equals("0"))
return "0";
StringBuilder sb = new StringBuilder();
for(int i = 0 ; i < numbers.length; i++)
sb.append(arr[i]);
return sb.toString();
}
}