λ¬Έμ
- μ«μ μΌκ΅¬ κ²μμ 1~9κΉμ§ 3μ리 μμμ μ«μλ₯Ό μ ν λ€ μλ‘κ° μκ°ν μ«μλ₯Ό λ§μΆλ κ²μμ΄λ€.
- μ«μλ λ§μ§λ§, μμΉκ° νλ Έμ λλ λ³Ό
- μ«μμ μμΉκ° λͺ¨λ λ§μ λλ μ€νΈλΌμ΄ν¬
- μ«μμ μμΉκ° λͺ¨λ νλ Έμ λλ μμ
μ λ ₯κ°
- baseball: μ§λ¬Έν μΈμ리 μ, μ€νΈλΌμ΄ν¬μμ, λ³Όμ μλ₯Ό λ΄μ 2μ°¨μ λ°°μ΄
μΆλ ₯κ°
- μ λ΅μΌ μ μλ μ«μμ μ
λ¬Έμ νμ΄
1. μ λ΅ νλ³΄κ° λ μ μλ κ°μ₯ μμκ° 123 λΆν° κ°μ₯ ν° κ° 987κΉμ§ μννλ©° μ λ΅μΈμ§ νμΈνλ€.
2. 100μ²λΌ 0μ΄ ν¬ν¨λμ΄μκ±°λ 112 μ κ°μ΄ κ°μ μκ° μ€λ³΅λ κ²½μ°λ λ΅μ΄ λ μ μλ μ«μμ΄λ―λ‘ μ μΈνλ€.
3. μ λ΅ν보μ μ§λ¬Έν μΈμ리 μλ₯Ό λΉκ΅ν΄λ΄€μλ μ€νΈλΌμ΄ν¬λ λ³Όμ κ°―μκ° λ± λ§μ λ¨μ΄μ§μ§ μλ κ²½μ° μ λ΅μ΄ μλλ―λ‘ μ μΈνλ€.
function solution(baseball) {
const convert = n => {
const n3 = n % 10
const n2 = ((n - n3) / 10) % 10
const n1 = (n - n3 - n2 * 10) / 100
return [n1, n2, n3]
}
const isValid = y => {
const [y1, y2, y3] = convert(y)
if (!y1 || !y2 || !y3 || y1 === y2 || y1 === y3 || y2 === y3) {
return false
}
for (let [x, s, b] of baseball) {
const [x1, x2, x3] = convert(x)
if (y1 === x1) s--
if (y2 === x2) s--
if (y3 === x3) s--
if (y1 === x2 || y1 === x3) b--
if (y2 === x1 || y2 === x3) b--
if (y3 === x1 || y3 === x2) b--
if (s !== 0 || b !== 0) {
return false
}
}
return true
}
let answer = 0
for (let y = 123; y <= 987; y++) {
if (isValid(y)) {
answer++
}
}
return answer;
}
μκ°λ³΅μ‘λ: O(N)
곡κ°λ³΅μ‘λ: O(1)