[04.24.22] Coding test

Juyeon.it·2022년 4월 24일
0

Coding test

목록 보기
13/32

Build Tower

Description

Build Tower
Build a pyramid-shaped tower given a positive integer number of floors. A tower block is represented with "*" character.
For example, a tower with 3 floors looks like this:

[
" * ",
" * ",
"***
"
]

My answer

function towerBuilder(nFloors) {
  let result = [];
  let maxLength = 2*nFloors-1;
  
  for (let i = nFloors; 0 < i; i--) {
    let ele = '*'.repeat(2*i-1);
    ele = ele.length < maxLength ? ' '.repeat((maxLength-ele.length)/2) + ele + ' '.repeat((maxLength-ele.length)/2) : ele;
    result.unshift(ele);
  }
  return result
}

Other solutions

function towerBuilder(n) {
  return Array.from({length: n}, function(v, k) {
    const spaces = ' '.repeat(n - k - 1);
    return spaces + '*'.repeat(k + k + 1) + spaces;
  });
}
function towerBuilder(nFloors) {
  var tower = [];
  for (var i = 0; i < nFloors; i++) {
    tower.push(" ".repeat(nFloors - i - 1)
             + "*".repeat((i * 2)+ 1)
             + " ".repeat(nFloors - i - 1));
  }
  return tower;
}
function towerBuilder(n) {
  return [...Array(n)].map((_,i)=>" ".repeat(n-1-i)+"*".repeat(i*2+1)+" ".repeat(n-1-i))
}

0개의 댓글

관련 채용 정보