728x90
목차
-스택, 큐, 데큐
-이중 for문(별쌓기)
-재귀함수(피보나치수열)
스택
LIFO 후위선출
가져오기 O(n)
추가하기 O(1)
삭제하기 O(1)
큐
FIFO 선위선출
데큐
양 방향 가능
스택+큐
콜 스택(call stack)
콜 스택이란 컴퓨터 프로그램에서 현재 실행 중인 서브루틴에 관한 정보를 저장하는 스택 자료구조이다. 서브루틴의 이러한 실행은 여러 단계로 중첩될 수도 있는데, 다른 호출에 의해 또 다른 서브루틴으로 넘어가버리거나, 재귀같은 특별한 경우가 있다.
이중 for문 (for문 안에 for문)
이중 for문을 사용하여 크리스마스 트리를 만들어보자.
let star = '';
for(let i=0; i<10; i++){
for(let j=9; i<j; j--){
star += " "
}
for(let k=0; (i*2)>=k; k++){
star += "*"
}
star += "\n"
}
// 위는 나뭇잎, 아래는 나무기둥
for(let n=0; n<2; n++){
for(let l=0; l<7; l++){
star += " "
}
for(let m=0; m<5; m++){
star += "*"
}
star += "\n"
}
console.log(star)
출력 결과
피보나치 수열
let numbers = [];
function fibo2(n){
if(numbers[n]!=undefined){ //이미있는건 그대로 리턴
return numbers[n];
} else if(n===1|| n===2){
return numbers[n] =1;
}else{
return numbers[n] = fibo2(n-2) + fibo(n-1)
}
}
console.log(fibo2(40))
피보나치 수열 같은 경우 더하는 수가 올라갈 수록 런타임 시간이 길어진다.
따라서 이미 구한 값을 또 구하지 않고, 저장해두었다가 다시 꺼내어 쓰는 형태로 코드를 짜야
동작시간이 빨라진다.
728x90
'백엔드 > Javascript' 카테고리의 다른 글
[Javascript] 얕은 복사, 깊은 복사 (0) | 2022.01.07 |
---|---|
[Javascript] 문자열, 배열 메서드 (0) | 2022.01.06 |
[Javascript] 배열 prototype 메서드, 속성, 객체 속 객체 (0) | 2022.01.04 |
[Javascript] let, const, 함수, 줄바꿈 (0) | 2022.01.03 |
자바스크립트 사용자 지정 함수, for문 (0) | 2021.12.31 |