[리트코드] 412. Fizz Buzz

Chaejung·2022년 8월 2일
0

알고리즘_JavaScript

목록 보기
4/12

문제

(엄밀히 말하면 전혀 다르지만) 3 6 9 게임과 유사한 구현!, 아무튼 3으로만 나눠지는 수면 "Fizz", 5로만 나눠지는 수면 "Buzz", 3과 5로 동시에 나눠지는 수면 "FizzBuzz"를 나타내는 수열 리스트를 반환하면 된다.

말하는 것 그대로를 코드로 구현하면 되는, 어렵지 않은 문제였다.

해설 코드

var fizzBuzz = function(n) {
  	// [1, 2, 3, 4, ..., n]으로 초기화시켜주는 작업
    let answer = Array.from({length: n}, (_, i) => i + 1)
    // map으로 돌면서 조건문으로 처리해서 return 해버리기
    return answer.map((val)=>{
        if (val%3==0){
            if (val%5==0){
                return "FizzBuzz"
            } else{
                return "Fizz"
            }
        } else if (val%5==0){
            return "Buzz"
        }
        return val.toString()
    })
   
};

결과

기억해야할 것

[1, 2, 3, 4, 5]

[1, 2, 3, 4, ..., n]

와 같이 n까지의 수로 Array를 초기화시키고 싶을 때,

Python에서 list apprehension을 썼듯이, JavaScript도 for문을 돌리지 않고 뭔가 할 수 있지 않을까하고 찾아본 결과,

Array.from({length: n}, (_, i) => i+1)

아주 유용할 것 같다!

from이 궁금하다면

profile
프론트엔드 기술 학습 및 공유를 활발하게 하기 위해 노력합니다.

0개의 댓글