
λ μ μ 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" |
μ²μμλ 2μ€ λ°λ³΅λ¬Έμ μ¬μ©νμ¬ λ λ¬Έμμ΄μμ 곡ν΅μΌλ‘ λνλλ μ«μλ₯Ό μ°ΎμΌλ € νλ€. νμ§λ§ μ΄ λ°©λ²μ μκ° λ³΅μ‘λκ° O(n^2)λ‘ μκ° μ΄κ³Όκ° λ°μνλ€.πΏ
κ·Έλμ λ°λ³΅λ¬Έμ ν λ² μ¬μ©νκ³ , filter ν¨μλ₯Ό νμ©νμ¬ λ¬Έμ λ₯Ό ν΄κ²°νλ λ°©μμΌλ‘ λ³κ²½νλ€.
function solution(X, Y) {
let answer = "";
// μͺΌκ°κΈ°
X = X.split("");
Y = Y.split("");
// μ«μ 9~0μ λΉκ΅ (0~9 μ€λ¦μ°¨μμΌλ‘ λ°λ³΅λ¬Έμ λλ©΄ λ§μ§λ§μ μ λ ¬μ ν΄μ€μΌν΄μ λ΄λ¦Όμ°¨μμΌλ‘ λΉκ΅)
for(let i = 9; i >= 0; i--){
// xμ yμμ iκ°μ΄ λͺκ° ν¬ν¨λμ΄μλμ§ μΆμΆ
const x = X.filter(x => Number(x) === i).length;
const y = Y.filter(y => Number(y) === i).length;
// answerμ xμ yμ€ λ μμ μλ§νΌ λ°λ³΅νμ¬ iκ° λμ
answer += String(i).repeat(Math.min(x, y));
}
// μμΈμ²λ¦¬
if (answer.length === 0) return "-1";
if (answer.charAt(0) === "0") return "0";
return answer;
}
1λ 벨μΉκ³ μκ°λ³΄λ€ μ΄λ €μ λ λ¬Έμ μλ€. μμ‘΄κ° μ¬λ¦¬λ €κ³ νΌ λ¬Έμ μΈλ° λ λ¨μ΄μ§ κ±° κ°λ€...γ