728x90
반응형
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의 활용 여부를 제외하고
모범 답안과 나의 답안이 비슷하다.
모범 답안을 기준으로 실행 절차를 설명하자면,
for문을 작성하여 출력 범위를 설정.if문을 통해3과 5의 공배수라면fizzbuzz,3의 배수라면fizz,5의 배수라면buzz를 각각 출력하는 코드 작성.
코드를 실행하면 위와 같이 출력된다.
이번 문제의 핵심은 %(modulo)연산자의 활용이었다.
728x90
반응형
'👩💻 Programming > Coding Test 문제 풀이' 카테고리의 다른 글
| 애너그램(Anagrams) (0) | 2022.04.04 |
|---|---|
| 배열 잘라내기(Array Chunking) (0) | 2022.04.04 |
| 문자열 내 최빈값 구하기(MaxChars) (0) | 2022.04.04 |
| 정수 뒤집기(Integer Reversal) (0) | 2022.04.04 |
| 회문(Palindromes) (0) | 2022.04.04 |
댓글