π λ¬Έμ μ€λͺ
λ μ μ 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μ μ§κΏμ μλΉν ν° μ μμΌ μ μμΌλ―λ‘, λ¬Έμμ΄λ‘ λ°νν©λλ€.
μ μΆλ ₯ μ
"100" | "2345" | "-1" |
"100" | "203045" | "0" |
"100" | "123450" | "10" |
"12321" | "42531" | "321" |
"5525" | "1255" | "552" |
βοΈ νμ΄
λ¬Έμμ΄μ κ° μ«μλ₯Ό μΉ΄μ΄ν ν΄μ ν° μλΆν° μ€λ³΅λλλ§νΌ answerμ λν΄μ£Όλ©΄ λλ€κ³ μκ°νλ€.
get, set μμ μ΄ λ§μ΄ μΌμ΄λ λμλ κ°μ²΄λ³΄λ€ Mapμ΄ ν¨μ¨μ μ΄κΈ° λλ¬Έμ Mapμ μ¬μ©ν΄μ κ° μ«μλ₯Ό μΉ΄μ΄ν νλ€. λν ν° μλΆν° answerμ λ°λ³΅ν΄μ λν΄μ€μΌ νκΈ° λλ¬Έμ νλμ hash(Map)λ₯Ό μ λ ¬ν΄μ£Όκ³ λ§μ½ λ€λ₯Έ hashμ μλ€λ©΄ continue μμΌμ€¬λ€. μ΄λ Stringμ λ©μλμΈ repeatμ μ¬μ©ν΄μ answerμ κ°λ₯νλ§νΌ λν΄μ€¬λ€.
λλΆλΆ ν΅κ³Όνμ§λ§ μΌλΆ ν μ€νΈ μΌμ΄μ€μμ μκ°μ΄κ³Όκ° λ°μν΄μ μ΄λ λΆλΆμ΄ λ¬Έμ μΈμ§ μκ°ν΄λ³΄μλ€. κ²°κ΅ μ°Ύμ λΆλΆμ΄ answerλ₯Ό λ°ννλ λΆλΆμ΄μλ€."00"μ²λΌ "0"μ΄ μ€λ³΅λλ κ²½μ° μ€λ³΅λλ "0"μ μ κ±°ν΄μ€μΌ νλλ° μ΄λ BigIntλ₯Ό μ¬μ©νλ€. λ¬Έμ λ νλ³νμ΄μλ€. νλ³νμ ν΄μ μ«μλ‘ λ³ννκ³ λ¬Έμμ΄λ‘ λ€μ λ³νμ ν΄μ£Όμλλ° μ΄ μμ μ΄ μκ°λ³΄λ€ μ€λ 걸리λ μμ μ΄μλ κ² κ°λ€. λ°λΌμ "00"μ²λΌ "0"μ΄ μ€λ³΅λ μ μλ κ²½μ° answer λ¬Έμμ΄μ 첫μλ¦¬κ° "0"μΌ λ ν° κ°λΆν° μ§νμ νκΈ° λλ¬Έμ μ λ "0123"κ³Ό κ°μ κ²½μ°κ° λμ¬ μ μμΌλ―λ‘ "0"μ λ°νν΄μ£Όκ³ λ§μ½ answerμ΄ λΉλ¬Έμμ΄μΈ κ²½μ° "-1"μ λ°νν¨μΌλ‘μ λ¬Έμ λ₯Ό ν΄κ²°νλ€.
β¨οΈ μ½λ
function solution(X, Y) {
var answer = '';
const hash1 = new Map();
const hash2 = new Map();
for (const n of X) hash1.set(n, (hash1.get(n) || 0) + 1);
for (const n of Y) hash2.set(n, (hash2.get(n) || 0) + 1);
const sortedHash1arr = [...hash1.entries()].sort((a, b) => b[0] - a[0]);
for (const [k, v] of sortedHash1arr) {
if (!hash2.get(k)) continue;
answer += k.repeat(Math.min(v, hash2.get(k)));
}
return answer ? (answer[0] === '0' ? '0' : answer) : '-1';
}
'Algorithm' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Algorithm] μλ¬Όμ μ μ΄μ (0) | 2023.04.23 |
---|---|
[Algorithm] μΉ΄λ λμΉ (0) | 2023.04.23 |
[Algorithm] μΉμμ΄(2) (1) | 2023.04.22 |
[Algorithm] λ¬Έμμ΄ λλκΈ° (0) | 2023.04.19 |
[Algorithm] λλ§μ μΈμ΄ (0) | 2023.04.18 |