mumbling.js (7kyu 01)

Codewars 알고리즘 풀이


Problem

  • The examples below show you how to write function mumbling:
    • 아래의 예는 함수 mumbling을 어떻게 작성하는지 보여준다.


For example:

mumbling('abce');  // A-Bb-Ccc-Dddd
mumbling('code');  // C-Oo-Ddd-Eeee


Solution 01

function mumbling(str) {
  let arr = [];
  
  for (let i = 0; i < str.length; i++) {
    let result = '';
    
    for (let j = 0; j < i + 1; j++) {
      result += j === 0 ? str[i].toUpperCase() : str[i].toLowerCase();
    }
    arr.push(result);
  }
  return arr.join('-');
}

mumbling('abcd');  // A-Bb-Ccc-Dddd
mumbling('code');  // C-Oo-Ddd-Eeee
  • toUpperCase(): 문자열을 대문자로 변환한다.

  • toLowerCase(): 문자열을 소문자로 변환한다.

  • push(): 배열의 끝에 새 element를 추가하고, 새로운 길이를 반환한다.

  • join(): 배열의 모든 element를 결합하고, 새 문자열로 반환한다.


Solution 02

function mumbling(str) {
  return str
    .split('')
    .map((i, index) => i.toUpperCase() + i.toLowerCase().repeat(index))
    .join('-');
}

mumbling('abcd');  // A-Bb-Ccc-Dddd
mumbling('code');  // C-Oo-Ddd-Eeee
  • split(): 문자열을 부분 문자열로 분할하고, 새 배열로 반환한다.

  • map(): 배열 내 모든 element에 대해, 호출한 함수의 결과를 모아 새 배열로 반환한다.

  • repeat(): 지정된 수의 복사본을 가진 새 문자열을 반환한다.


Solution 03

function mumbling(str) {
  return [...str].map((i, index) => {
    return i.toUpperCase() + i.toLowerCase().repeat(index);
  }).join('-');
}

mumbling('abcd');  // A-Bb-Ccc-Dddd
mumbling('code');  // C-Oo-Ddd-Eeee