λ¬Έμ
1λΆν° μ λ ₯λ°μ μ«μ n μ¬μ΄μ μλ μμμ κ°μλ₯Ό λ°ννλ ν¨μ, solutionμ λ§λ€μ΄ 보μΈμ.
μμλ 1κ³Ό μκΈ° μμ μΌλ‘λ§ λλμ΄μ§λ μλ₯Ό μλ―Έν©λλ€.
(1μ μμκ° μλλλ€.)
μ ν 쑰건
- nμ 2μ΄μ 1000000μ΄νμ μμ°μμ λλ€.
μ½λ
νμ΄
μ£Όμ΄μ§ μ«μκ° λ°°μ΄ ννκ° μλλ―λ‘, 첫 λ²μ§Έλ‘ λ°λ³΅λ¬Έμ λ±μ₯μμΌμ μμλ₯Ό μ°ΎκΈ° μν μ«μ μ§ν©μ λ§λ€μ΄μ€λ€. 1μ μμ°μ€λ½κ² μ μΈκ° λλ 2λΆν° μμν΄ nκΉμ§ λ°°μ΄μ λ£μ΄μ€λ€.
μ΄λ arr[0], arr[1]μ μ±μμ§μ§ μμμ undefinedμ΄ λ κ²μ΄μ§λ§, ꡬνλ κ²μ μμμ κ°μμ΄λ―λ‘ filter λ©μλλ₯Ό ν΅ν΄μ μ§μλκ° μ μλ€.
λ§λ€μ΄μ§ λ°°μ΄μ μννλ©΄μ μμκ° μλ μλ€μ μ κ±°ν΄μ€ λͺ©μ μΌλ‘ 0μ λ£μ΄μ€λ€. i = 2μΌ λ, iλ²μ§Έμ μμΉν λ°°μ΄μ μμκ° 0μΌ κ²½μ° continueλ‘ λ€μ forλ¬Έ μ½λ μ§νμΌλ‘ λμ΄κ°λ€. λ°°μ΄μ μΈλ±μ€μ ν΄λΉ μμμ κ°μ λμΌν μ«μμ΄λ―λ‘, i + iλ iμ λ°°μ, μμκ° μλλ―λ‘ 0μΌλ‘ λ§λ€μ΄μ£Όκ³ , λ€μ μ¬κΈ°μ iλ₯Ό λν΄ λ€μ λ² μμ κ°μ νμνλ€.
μ½λ κ°μ
λΉ λ°°μ΄μ λ§λ€κ³ μ¬κΈ°μ νλμ© μ«μλ₯Ό λ£μ΄ λ°°μ΄μ μ±μ°λ λ°©λ²λ μμ§λ§, μ°¨λ‘ μ°¨λ‘ μ¦κ°νλ μ«μλ₯Ό λ°°μ΄ννλ κΉλν μ½λλ μλ€. ES6 λ¬Έλ²μμ Array from()κ³Ό keys() λ©μλλ₯Ό μΈ μ μλ€.
Array.from(Array(10).keys())
// spread operatorλ₯Ό μ΄μ©ν΄ λ μ§§κ² νννλ©΄ μλμ κ°λ€.
let s = [...Array(10).keys()]
console.log(s)
/* expected : [
0, 1, 2, 3, 4,
5, 6, 7, 8, 9
]
*/
μ μ½λλ νμ 0λΆν° μ±μλκ°κΈ° λλ¬Έμ λ§μΌ 1λΆν° μμνλλ‘ νλ€λ©΄, μλμ²λΌ μ¨λ³Ό μ μμ κ²μ΄λ€.
let s = [...Array(10).keys()].map(el => ++el);
// or
let s = Array.from(Array(10), (e, i) => ++i)
let s = Array.from({ length: n }, (e, i) => ++i) // μμ λμΌνλ€.
Array.from(arrayLike[, mapFn[, thisArg]])
- arrayLike : λ°°μ΄λ‘ λ³ννκ³ μ νλ μ μ¬ λ°°μ΄ κ°μ²΄λ λ°λ³΅ κ°λ₯ν κ°μ²΄
- mapFn : λ°°μ΄μ λͺ¨λ μμμ λν΄ νΈμΆν 맀ν ν¨μ
- thisArg : mapFun μ€ν μ thisλ‘ μ¬μ©ν κ°