문제

  • 아래의 예는 함수 mumbling을 어떻게 작성하는지 보여준다.

For example:

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

풀이 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를 결합하고, 새 문자열로 반환한다.

풀이 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(): 지정된 수의 복사본을 가진 새 문자열을 반환한다.

풀이 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