[νλ‘κ·Έλλ¨Έμ€][JAVA]Level 1 : μ«μ μ§κΆ
λ¬Έμ μ€λͺ
λ μ μ 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μ μ§κΏμ μλΉν ν° μ μμΌ μ μμΌλ―λ‘, λ¬Έμμ΄λ‘ λ°νν©λλ€.
μ μΆλ ₯ μXYresult
"100" | "2345" | "-1" |
"100" | "203045" | "0" |
"100" | "123450" | "10" |
"12321" | "42531" | "321" |
"5525" | "1255" | "552" |
μ²μμ λΉμ°ν 2μ€ forλ¬Έμ λλ Έλλ°, μ«μμ λ²μκ° 3λ°±λ§κΉμ§ μκΈ° λλ¬Έμ
2μ€ forλ¬Έ λ리면 μκ°λ³΅μ‘λμ μ λλ‘ ν΅κ³Όν μμλ€.
κ·Έλμ X,Yμ체λ₯Ό μκ°νμ§λ§κ³ , 0~9μ μ«μλΌκ³ μκ°μ λ°κΏμ νλ©΄ λλ€.
κ·Έλμ κ°κ° 10μ리μ λ°°μ΄μ μμ±ν΄μ μΉ΄μ΄ν ν΄μ£Όκ³ .. κ°μ μ«μ μλ λ§νΌ ν΄λΉ indexμ«μλ₯Ό μΆκ°ν΄μ£Όλ©΄ λλ€..
class Solution {
public String solution(String X, String Y) {
String answer = "";
int[] x_index=new int[10];
int[] y_index=new int[10];
for(String x:X.split("")) x_index[Integer.parseInt(x)]++;
for(String x:Y.split("")) y_index[Integer.parseInt(x)]++;
StringBuilder sb=new StringBuilder();
for(int i=9; i>=0; i--){
while(x_index[i]>0&&y_index[i]>0){
sb.append(i);
x_index[i]--;
y_index[i]--;
}
}
if("".equals(sb.toString())) answer="-1";
else if("0".equals(sb.toString().substring(0,1))) answer="0";
else answer=sb.toString();
return answer;
}
}