코드 흐름
- 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();
}
}
'Algorithm > Programers' 카테고리의 다른 글
Lv 2. 소수찾기 (0) | 2024.07.30 |
---|---|
Lv 2. 쿼드압축 후 갯수 세기 (0) | 2024.07.29 |
Lv 2. 방문길이 (0) | 2024.07.25 |
Lv 2. 2개 이하로 다른 비트 (0) | 2024.07.23 |
Lv 2. n제곱배열자르기 (4) | 2024.07.22 |