*Udemy의 "The Coding Interview Bootcamp: Algorithms + Data Structures" 강의에서 학습한 내용을 정리한 포스팅입니다.
*https://soldonii.github.io에서 작성한 글을 티스토리로 옮겨온 포스팅입니다.
*자바스크립트를 배우는 단계라 오류가 있을 수 있습니다. 틀린 내용은 댓글로 말씀해주시면 수정하겠습니다. 감사합니다. :)
지문
// Write a function that accepts a positive number N.
// The function should console log a pyramid shape
// with N levels using the # character. Make sure the
// pyramid has spaces on both the left *and* right hand sides
// --- Examples
// pyramid(1)
// '#'
// pyramid(2)
// ' # '
// '###'
// pyramid(3)
// ' # '
// ' ### '
// '#####'
1번 풀이 : for loop
function pyramid(n) {
const midpoint = Math.floor((2*n - 1) / 2);
for (let row = 0; row < n; row++) {
let level = '';
for (let column = 0; column < 2 * n -1; column++) {
if (midpoint - row <= column && midpoint + row >= column) {
level += '#';
} else {
level += ' ';
}
}
console.log(level);
}
}
2번 풀이 : recursive
function pyramid(n, row = 0, level = '') {
if (row === n) {
return ;
}
if (level.length === 2 * n -1) {
console.log(level);
return pyramid(n, row+1);
}
const midpoint = Math.floor((2*n -1) / 2);
let add;
if (midpoint - row <= level.length && midpoint + row >= level.length) {
add = '#';
} else {
add = ' ';
}
pyramid(n, row, level + add);
}
'Javascript 공부 > 알고리즘 풀이' 카테고리의 다른 글
(1) 코딜리티 - binaryGap (0) | 2019.08.29 |
---|---|
자바스크립트 알고리즘(13) - vowels (0) | 2019.08.26 |
자바스크립트 알고리즘(11) - matrix (0) | 2019.08.26 |
자바스크립트 알고리즘(10) - fibonacci (0) | 2019.08.26 |
자바스크립트 알고리즘(9) - steps (0) | 2019.08.26 |
댓글