
1λΆν° NκΉμ§μ μ«μμμ 3μ λ°°μλ Fizz, 5μ λ°°μλ Buzz, λ λ€ ν΄λΉνλ©΄ FizzBuzzμΈ λ°°μ΄ λ°ννκΈ°
λ§μ§λ§μ 리ν΄λλ λ°°μ΄μ μμ ννκ° index + 1μμ μμνκΈ° λλ¬Έμ [1, 2, 3...] μ΄λ° μμ λ°°μ΄μ λ§λ€κΈ° μν΄ Array.from() λ©μλλ₯Ό μ¬μ©νκ³ 3μ λ°°μ, 5μ λ°°μ, 15μ λ°°μλ κ°κ°μ 쑰건문μ λ리며 μ°Ύμ λ€ ν€μλλ‘ μΉννλ€.
const fizzBuzz = (n) => {
const arr = Array.from({ length: n }, (_, i) => i + 1);
for (let i = 0; i < arr.length; i++) {
if (arr[i] % 15 === 0) {
arr[i] = "FizzBuzz";
}
if (arr[i] % 3 === 0) {
arr[i] = "Fizz";
}
if (arr[i] % 5 === 0) {
arr[i] = "Buzz";
}
arr[i] = arr[i].toString();
}
return arr;
};
λ΄ μ½λλ₯Ό μ μΆνκ³ λλ©΄ λ€λ₯Έ λΆλ€μ μ½λλ λΉκ΅νλ νΈμΈλ° μ΄ κ³Όμ μ΄ μ μΌ μ¬λ―Έμλ€. κ°λ μμ μ²μ보λ μ½λλ₯Ό λ°κ²¬ν λλ μκ³ (μ΅κ·Όμλ XOR μ°μ°μλ₯Ό μ΄λ κ² μκ² λ..μμ§λ§ μμ§ μ°κΈ°μ λ°λ©΄λ°λ©΄ν μν) 보ν΅μ λ΄ μ½λλ³΄λ€ λ κ°κ²°ν μ½λλ€μ΄ λ§κΈ° λλ¬Έμ μ΄ λΉκ΅ κ³Όμ μμ λ 곡λΆκ° λλ κ² κ°κΈ°λ νλ€. μλ μ½λλ μλ λ°©μμ λΉμ·νλ° μμ λΉ λ°°μ΄μ λ§λ€κ³ λ°λ³΅λ¬Έμ λλ©° μ«μ, ν€μλλ₯Ό μ½μ νλ λ°©λ²μΈλ° 쑰건문 λΉ μ½λ λΈλμ΄ μμ΄μ κ·Έλ°μ§ λ κ°λ μ±μ΄ (λ΄ κ²λ³΄λ€) μ’μ보μ¬μ μ΄ν΄λ΄€λ€.
const fizzBuzz = (n) => {
const result = [];
for (let i = 1; i <= n; i++) {
if (i % 5 === 0 && i % 3 === 0) result.push("FizzBuzz");
else if (i % 3 === 0) result.push("Fizz");
else if (i % 5 === 0) result.push("Buzz");
else result.push(i.toString());
}
return result;
};
μ§μ§ κΉλ........ map λ©μλλ₯Ό μ λ κ² μ¦κ°μ°μ°μ, μΌν μ°μ°μλ κ°μ΄ μ¬μ©νλ λ°©μμ μκ°λ λͺ»νλ€. νλμ© λ―μ΄λ³΄λ©΄μ 곡λΆνλ€κ° μ¦κ°μ°μ°μμ μμΉμ μ€μμ±μ λ€μ νλ² κΉ¨λ«κ² λμλ€. map λ΄ μ½λ°± ν¨μμμ κ°κ°μ μΈλ±μ€ iκ° νμ¬ 0λΆν° μμνκΈ° λλ¬Έμ 1μ© λ¨Όμ μ¦κ°μν€κ³ λλ¨Έμ§λ₯Ό νμΈνλ μ°μ°μ΄ μ΄μ΄μ§κΈ° λλ¬Έμ μ¬κΈ°μλ νμ(i++)κ° μλ μ μ(++i) μ°μ°μλ₯Ό μ¬μ©ν΄μΌ νλ€.
const fizzBuzz = (n) => {
return new Array(n)
.fill(0)
.map(
(a, i) => (++i % 3 ? "" : "Fizz") + (i % 5 ? "" : "Buzz") || "" + i
);
};