๋ฌธ์ ์ค๋ช
https://school.programmers.co.kr/learn/courses/30/lessons/131128
๋ ์ ์ X, Y์ ์์์ ์๋ฆฌ์์ ๊ณตํต์ผ๋ก ๋ํ๋๋ ์ ์ k(0 ≤ k ≤ 9)๋ค์ ์ด์ฉํ์ฌ ๋ง๋ค ์ ์๋ ๊ฐ์ฅ ํฐ ์ ์๋ฅผ ๋ ์์ ์ง๊ฟ์ด๋ผ ํฉ๋๋ค(๋จ, ๊ณตํต์ผ๋ก ๋ํ๋๋ ์ ์ ์ค ์๋ก ์ง์ง์ ์ ์๋ ์ซ์๋ง ์ฌ์ฉํฉ๋๋ค). X, Y์ ์ง๊ฟ์ด ์กด์ฌํ์ง ์์ผ๋ฉด, ์ง๊ฟ์ -1์
๋๋ค. X, Y์ ์ง๊ฟ์ด 0์ผ๋ก๋ง ๊ตฌ์ฑ๋์ด ์๋ค๋ฉด, ์ง๊ฟ์ 0์
๋๋ค.
์๋ฅผ ๋ค์ด,X= 3403์ด๊ณ Y= 13203์ด๋ผ๋ฉด,X์Y์ ์ง๊ฟ์X์Y์์ ๊ณตํต์ผ๋ก ๋ํ๋๋ 3, 0, 3์ผ๋ก ๋ง๋ค ์ ์๋ ๊ฐ์ฅ ํฐ ์ ์์ธ 330์
๋๋ค. ๋ค๋ฅธ ์์๋กX= 5525์ด๊ณ Y= 1255์ด๋ฉดX์Y์ ์ง๊ฟ์X์Y์์ ๊ณตํต์ผ๋ก ๋ํ๋๋ 2, 5, 5๋ก ๋ง๋ค ์ ์๋ ๊ฐ์ฅ ํฐ ์ ์์ธ 552์
๋๋ค(X์๋ 5๊ฐ 3๊ฐ,Y์๋ 5๊ฐ 2๊ฐ ๋ํ๋๋ฏ๋ก ๋จ๋ 5 ํ ๊ฐ๋ ์ง ์ง์ ์ ์์ต๋๋ค.)
๋ ์ ์ X, Y๊ฐ ์ฃผ์ด์ก์ ๋, X, Y์ ์ง๊ฟ์ returnํ๋ solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ ์ฌํญ
- 3 ≤ X, Y์ ๊ธธ์ด(์๋ฆฟ์) ≤ 3,000,000์ ๋๋ค.
- X, Y๋ 0์ผ๋ก ์์ํ์ง ์์ต๋๋ค.
- X, Y์ ์ง๊ฟ์ ์๋นํ ํฐ ์ ์์ผ ์ ์์ผ๋ฏ๋ก, ๋ฌธ์์ด๋ก ๋ฐํํฉ๋๋ค.
์ ์ถ๋ ฅ ์
X | Y | result |
"100" | "2345" | "-1" |
"100" | "203045" | "0" |
"100" | "123450" | "10" |
"12321" | "42531" | "321" |
"5525" | "1255" | "552" |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
- X, Y์ ์ง๊ฟ์ ์กด์ฌํ์ง ์์ต๋๋ค. ๋ฐ๋ผ์ "-1"์ returnํฉ๋๋ค.
์ ์ถ๋ ฅ ์ #2
- X, Y์ ๊ณตํต๋ ์ซ์๋ 0์ผ๋ก๋ง ๊ตฌ์ฑ๋์ด ์๊ธฐ ๋๋ฌธ์, ๋ ์์ ์ง๊ฟ์ ์ ์ 0์ ๋๋ค. ๋ฐ๋ผ์ "0"์ returnํฉ๋๋ค.
์ ์ถ๋ ฅ ์ #3
- X, Y์ ์ง๊ฟ์ 10์ด๋ฏ๋ก, "10"์ returnํฉ๋๋ค.
์ ์ถ๋ ฅ ์ #4
- X, Y์ ์ง๊ฟ์ 321์ ๋๋ค. ๋ฐ๋ผ์ "321"์ returnํฉ๋๋ค.
์ ์ถ๋ ฅ ์ #5
- ์ง๋ฌธ์ ์ค๋ช ๋ ์์์ ๊ฐ์ต๋๋ค.
๋ด๊ฐ ์์ฑํ ์ฝ๋
import java.util.*;
class Solution {
public String solution(String X, String Y) {
StringBuilder answer = new StringBuilder();
// ํฌํจํ๊ณ ์๋ ์ซ์๋ฅผ ํ์ธํด์ ๊ฐ์๋ฅผ ์ ์ฅํ ๋ฐฐ์ด ์์ฑ
int[] xCntArr = new int[10];
int[] yCntArr = new int[10];
// ๋ฐ๋ณต๋ฌธ์ ํตํด ํด๋น ์ซ์์ ์ธ๋ฑ์ค ์์น์ ๊ฐ +1
for (String x : X.split("")) {
xCntArr[Integer.parseInt(x)]++;
}
// ๋ฐ๋ณต๋ฌธ์ ํตํด ํด๋น ์ซ์์ ์ธ๋ฑ์ค ์์น์ ๊ฐ +1
for (String y : Y.split("")) {
yCntArr[Integer.parseInt(y)]++;
}
// ๋ฐ๋ณต๋ฌธ์ ํตํด ๊ฐ์ ์ซ์๋ฅผ ํฌํจํ๊ณ ์๋์ง ํ์ธ
for (int i = 9; i >= 0; i--) {
// ๋ ๋ค 0๋ณด๋ค ํฌ๋ค๋ฉด ๋์์ ํฌํจํ๊ณ ์๋ ์์ด๋ฏ๋ก answer์ ์ถ๊ฐ
while (xCntArr[i] > 0 && yCntArr[i] > 0) {
answer.append(i);
xCntArr[i]--;
yCntArr[i]--;
}
}
// ์ง๊ฟ์ด ์๋ค๋ฉด "-1" ์ถ๋ ฅ
if ("".equals(answer.toString())) {
return "-1";
}
// ๊ฐ์ด 0์ด๋ผ๋ฉด "0" ์ถ๋ ฅ
if ("0".equals(answer.toString().substring(0, 1))) {
return "0";
}
// answer๋ฅผ String์ผ๋ก ์ถ๋ ฅ
return answer.toString();
}
}
'๐งฉ ํ๋ก๊ทธ๋๋จธ์ค > ์๊ณ ๋ฆฌ์ฆ ํ์ด(Java)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ ํ๋ก๊ทธ๋๋จธ์ค/Java ] ์ฒด์ก๋ณต (1) | 2025.01.24 |
---|---|
[ ํ๋ก๊ทธ๋๋จธ์ค/Java ] ์น์์ด (2) (1) | 2025.01.21 |
[ ํ๋ก๊ทธ๋๋จธ์ค/Java ] ๋ก๋์ ์ต๊ณ ์์์ ์ต์ ์์ (1) | 2025.01.20 |
[ ํ๋ก๊ทธ๋๋จธ์ค/Java ] ๋ง์น ํ๊ธฐ (1) | 2025.01.17 |
[ ํ๋ก๊ทธ๋๋จธ์ค/Java ] ์์ ๋ง๋ค๊ธฐ (1) | 2025.01.16 |