References

아래 링크의 강의 중 Section 7. The Classic FizzBuzz!의 내용을 추려 이번 글을 작성하였습니다.
The Coding Interview Bootcamp: Algorithms + Data Structures on Udemy


Solution 1. my solution

function fizzBuzz(n) {
  let arr = [];
  for (let i = 1; i <= n; ++i) {
    arr.push(i);
  }

  for (j = 0; j < arr.length; ++j) {
    if (arr[j] % 3 === 0 && arr[j] % 5 === 0) {
      arr[j] = "fizzbuzz";
    } else if (arr[j] % 5 === 0) {
      arr[j] = "buzz";
    } else if (arr[j] % 3 === 0) {
      arr[j] = "fizz";
    }
    console.log(arr[j]);
  }
}
fizzBuzz(15);

Solution 2. more simple ver.

function fizzBuzz(n) {
  for (let i = 1; i <= n; ++i) {
    // Is the number a multiple of 3 and 5?
    if (i % 3 === 0 && i % 5 === 0) {
      console.log("fizzbuzz");
    } else if (i % 3 === 0) {
      // Is the number a multiple of 3?
      console.log("fizz");
    } else if (i % 5 === 0) {
      // Is the number a multiple of 5?
      console.log("buzz");
    } else {
      console.log(i);
    }
  }
}
fizzBuzz(15);

이번 문제는 array의 활용 여부를 제외하고
모범 답안과 나의 답안이 비슷하다.
모범 답안을 기준으로 실행 절차를 설명하자면,

  1. for문을 작성하여 출력 범위를 설정.
  2. if문을 통해 3과 5의 공배수라면 fizzbuzz, 3의 배수라면 fizz, 5의 배수라면 buzz를 각각 출력하는 코드 작성.

    코드를 실행하면 위와 같이 출력된다.

이번 문제의 핵심은 %(modulo)연산자의 활용이었다.

profile
front-end 분야를 중점으로 공부 중!🐣

0개의 댓글