알고리즘 50 - Mumbling

jabae·2021년 10월 29일
0

알고리즘

목록 보기
50/97

Q.

This time no story, no theory. The examples below show you how to write function accum:

Examples:

accum("abcd") -> "A-Bb-Ccc-Dddd"
accum("RqaEzty") -> "R-Qq-Aaa-Eeee-Zzzzz-Tttttt-Yyyyyyy"
accum("cwAt") -> "C-Ww-Aaa-Tttt"

A)

function accum(s) {
	let result = "";
  
  for (let i = 0; i < s.length; i++) {
    result += s[i].toUpperCase();
    for (let j = 0; j < i; j++) {
      result += s[i].toLowerCase();
    }
    if (i + 1 < s.length) {
      result += '-'
    }
  }
  return result;
}

other

.map()의 괄호 안에를 항상 currentValue 하나만 넣어서 사용했었는데, 이렇게 쓸 수도 있다. currentValue와 index를 사용해 반복하는 횟수를 .repeat()에 넣어주는 것이다.

  • .map(currentValue, index, array)
  • .repeat(n)
function accum(s) {
  return s.split('').map((c, i) => (c.toUpperCase() + c.toLowerCase().repeat(i)))
    .join('-');
}
profile
it's me!:)

0개의 댓글