기초 알고리즘(2)

이경준·2020년 11월 24일
0

기초알고리즘

목록 보기
2/7

문제) 함수(x) -> 숫자의 갯수에 맞게 수박을 출력해야한다.

예시1) 함수(2) -> '수박'
예시2) 함수(5) -> '수박수박수'
const watermelon = function(x){
  const arr = [];
  const soo = '수';
  const bak = '박';
  
  for(let i=1; i<=x; i++){
    if(i%2 === 1){
      arr.push(soo)     
    } else {
      arr.push(bak)
    }
  }
  
  return arr
}

console.log(watermelon(4))
//['수','박','수','박']

숫자에 맞게 수박을 출력하는 함수를 만들었다. 다행이도 수박이 두글자여서 홀수짝수가 특징이라는 것을 어렵지 않게 발견했다. 새로운 배열에 짝수이면 '박' 홀수이면 '수'를 push하는 방법으로 접근해봤다.
그러나 '수','박' => 수박으로 출력되게 하고싶다.


const watermelon = function(x){
  const arr = [];
  const soo = '수';
  const bak = '박';
  
  for(let i=1; i<=x; i++){
    if(i%2 === 1){
      arr.push(soo)     
    } else {
      arr.push(bak)
    }
  }
  
  const watermelonPack = arr.reduce((acc,curr)=>{
    return acc + curr
  })
  
  return watermelonPack
}

console.log(watermelon(5))
/// 수박수박수

배열안에 따로따로 있는 단어들을 하나로 합치고 싶었다. join()도 해보고 다른 것들도 찾아봤지만 적용이 힘들었다. 그러다가 string은 다 더하면 글자끼리 합쳐진다는 것을 생각했고, reduce()를 사용하여 배열의 모든 단어를 합쳐서 출력해보았다.

profile
내가 기억하기위한 블로그

0개의 댓글