[programmers] ๊ฐ์ฅ ํฐ ์ - Java
์ฃผ์ด์ง ์ ์ ๋ฐฐ์ด์์ ๊ฐ์ฅ ํฐ ์๋ฅผ ๋ง๋ค๊ธฐ ์ํด, ์ ์๋ฅผ ๋ฌธ์์ด๋ก ๋ณํํ๊ณ , ํน์ ๋น๊ต ๊ธฐ์ค์ ๋ฐ๋ผ ์ ๋ ฌํ ํ, ์ ๋ ฌ๋ ๋ฌธ์์ด์ ์ฐ๊ฒฐํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ Java ์๋ฃจ์
์ ์ ์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, [6, 10, 2]๋ "6210"์ผ๋ก, [3, 30, 34, 5, 9]๋ "9534330"์ผ๋ก ๋ฐํ๋ฉ๋๋ค.
Nov 28, 2024
๊ฐ์ฅ ํฐ ์
๋ฌธ์ ์ค๋ช
0 ๋๋ ์์ ์ ์๊ฐ ์ฃผ์ด์ก์ ๋, ์ ์๋ฅผ ์ด์ด ๋ถ์ฌ ๋ง๋ค ์ ์๋ ๊ฐ์ฅ ํฐ ์๋ฅผ ์์๋ด ์ฃผ์ธ์.
์๋ฅผ ๋ค์ด, ์ฃผ์ด์ง ์ ์๊ฐ [6, 10, 2]๋ผ๋ฉด [6102, 6210, 1062, 1026, 2610, 2106]๋ฅผ ๋ง๋ค ์ ์๊ณ , ์ด์ค ๊ฐ์ฅ ํฐ ์๋ 6210์
๋๋ค.
0 ๋๋ ์์ ์ ์๊ฐ ๋ด๊ธด ๋ฐฐ์ด numbers๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์์๋ฅผ ์ฌ๋ฐฐ์นํ์ฌ ๋ง๋ค ์ ์๋ ๊ฐ์ฅ ํฐ ์๋ฅผ ๋ฌธ์์ด๋ก ๋ฐ๊พธ์ด return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ ์ฌํญ
- numbers์ ๊ธธ์ด๋ 1 ์ด์ 100,000 ์ดํ์ ๋๋ค.
- numbers์ ์์๋ 0 ์ด์ 1,000 ์ดํ์ ๋๋ค.
- ์ ๋ต์ด ๋๋ฌด ํด ์ ์์ผ๋ ๋ฌธ์์ด๋ก ๋ฐ๊พธ์ด return ํฉ๋๋ค.
์ ์ถ๋ ฅ ์
numbers | return |
[6, 10, 2] | "6210" |
[3, 30, 34, 5, 9] | "9534330" |
solution.java
import java.util.*; class Solution { public String solution(int[] numbers) { // ์ ๋ ฌ์ ์ํด int ๋ฐฐ์ด์ String ๋ฐฐ์ด๋ก ๋ณํ String[] strNumbers = new String[numbers.length]; for (int i = 0; i < numbers.length; i++) { strNumbers[i] = String.valueOf(numbers[i]); } // comparator๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฌธ์์ด ์ ๋ ฌ Arrays.sort(strNumbers, (a, b) -> (b + a).compareTo(a + b)); // ๊ฐ์ฅ ํฐ ์ซ์๊ฐ "0"์ธ ๊ฒฝ์ฐ "0"์ ๋ฐํ ex) [0, 0]์ ๊ฒฝ์ฐ if (strNumbers[0].equals("0")) { return "0"; } // ์ ๋ ฌ๋ ๋ฌธ์์ด์ ์ฐ๊ฒฐํ์ฌ ๊ฐ์ฅ ๋ง์ ์ ๋ง๋ค๊ธฐ StringBuilder result = new StringBuilder(); for (String num : strNumbers) { result.append(num); } return result.toString(); } }
ํต์ฌ ํค์๋
Arrays.sort()
๋ฉ์๋์์ comparator์ ๊ฒฝ์ฐ (b + a)์ (a + b)๋ฅผ ๋น๊ตํ์ฌ ์์๋ฅผ ๊ฒฐ์ ํ๋ค.- ์๋ฅผ ๋ค์ด a = "3" ๋ฐ b = "30"์ธ ๊ฒฝ์ฐ "303"๊ณผ "330"์ ํ์ธํ๋ค.
- ์์ ๊ฒฐ๊ณผ: (b + a)๊ฐ (a + b)๋ณด๋ค ํฐ ๊ฒฝ์ฐ ์ ๋ ฌ๋ ์์์์ b๊ฐ a ์์ ์์ผ ํ๋ค. ์์ ๊ฒฐ๊ณผ: (a + b)๊ฐ (b + a)๋ณด๋ค ํฐ ๊ฒฝ์ฐ ์ ๋ ฌ๋ ์์์์ a๊ฐ b ์์ ์์ผ ํ๋ค. ๊ฒฐ๊ณผ ์์: (a + b)๊ฐ (b + a)์ ๊ฐ์ผ๋ฉด ์์๋ ์ค์ํ์ง ์๋ค.
๊ฒฐ๋ก !
ํด๋น ๋ฌธ์ ๋ฅผ ํตํด
Arrays.sort()
๋ฉ์๋๋ฅผ ใ
์ฌ์ฉํ๋ ๋ฒ์ ์ตํ ์ ์์๋ค.Share article