pattern.js (7kyu 90)

Codewars 알고리즘 풀이


Problem

  • You have to write a function ‘pattern’ which returns the following pattern upto ‘n’ number of rows.
    • n 개의 row까지 패턴을 반환하는 함수를 작성한다.
  • If n < 1 then it should return ‘ ‘.
    • n <1의 경우, 빈 문자열을 반환한다.
  • There are no whitespaces in the pattern.
    • 패턴에는 공백이 없다.


Pattern

1
22
333
....
.....
nnnnnn



Solution 01

function pattern(n) {
  let result = [];
  
  for (let i = 1; i <= n; i++) {
    result.push(i.toString().repeat(i));
  }
  return result.join('\n');
}

pattern(0);  // ''
pattern(1);  // 1
pattern(2);  // 1\n22
pattern(3);  // 1\n22\n333
pattern(4);  // 1\n22\n333\n4444

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

toString(): 숫자를 문자열로 변환한다.

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

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


Solution 02

function pattern(n) {
  let result = '';
  
  for (let i = 1; i <= n; i++) {
    for (let j = 0; j < i; j++) {
      result += i;
    }
    result += '\n';
  }
  return result.slice(0, -1);
}

pattern(0);  // ''
pattern(1);  // 1
pattern(2);  // 1\n22
pattern(3);  // 1\n22\n333
pattern(4);  // 1\n22\n333\n4444

slice(): 문자열/배열의 일부를 추출하고, 새 문자열/배열로 반환한다.