
아래 링크의 강의 중 Section 7. The Classic FizzBuzz!의 내용을 추려 이번 글을 작성하였습니다.
The Coding Interview Bootcamp: Algorithms + Data Structures on Udemy
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);
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의 활용 여부를 제외하고
모범 답안과 나의 답안이 비슷하다.
모범 답안을 기준으로 실행 절차를 설명하자면,
for문을 작성하여 출력 범위를 설정.if문을 통해 3과 5의 공배수라면 fizzbuzz, 3의 배수라면 fizz, 5의 배수라면 buzz를 각각 출력하는 코드 작성.
이번 문제의 핵심은 %(modulo)연산자의 활용이었다.