์ฝ๋
import java.util.Arrays;
import java.util.Comparator;
class Solution {
public String largestNumber(int[] nums) {
// int ๋ฐฐ์ด -> String ๋ฐฐ์ด
String[] strNums = new String[nums.length];
for (int i = 0; i < nums.length; i++) {
strNums[i] = String.valueOf(nums[i]);
}
// Comparator ์ ์ธ
Arrays.sort(strNums, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
// ๋ฌธ์ ๋จ์๋ก ํฉ์ณค์ ๋ ๋ ํฐ๊ฑฐ ๊ตฌํ๊ธฐ.
// '30'๊ณผ '9'๊ฐ ์์ผ๋ฉด '309'๊ฐ ํฐ์ง '930'์ด ํฐ์ง ๋น๊ตํ๋ค.
String order1 = o1 + o2;
String order2 = o2 + o1;
return order2.compareTo(order1);
}
});
// ์ฃ์ง์ผ์ด์ค. ์ ๋ ฌ ๊ธฐ์ค ์ ์ผ ํฐ ๊ฐ์ด 0์ด๋ฉด ๊ทธ๋ฅ 0๋ฆฌํด
if (strNums[0].equals("0")) {
return "0";
}
// ํ๋์ ๋ฌธ์์ด๋ก ๊ฒฐ๊ณผ ๋ฆฌํด
StringBuilder sb = new StringBuilder();
for (String num : strNums) {
sb.append(num);
}
return sb.toString();
}
}
Java
๋ณต์ฌ
๋ฌธ์ ํด๊ฒฐ ์์ด๋์ด
๋ฌธ์์ด ๋ฉ์๋๋ฅผ ํ์ฉํด ์ฝ์
์ ๋ ฌ๋ก ๋น๊ตํ๋ ๋ฌธ์ ์๋ค. Comparator๋ฅผ ํ์ฉํ์ฌ ๋ฌธ์์ด์ ํฉ์น ๊ฒฐ๊ณผ๊ฐ ๋ ํฐ ๋ถ๋ถ์ ํ๋ํ๋ ๋น๊ต ํ ์ ๋ ฌํด๋๊ฐ๋ฉฐ ํด๊ฒฐํ๋ค.