728x90
먼저 스택에 대해서 생각해보자
스택의 성질은 나중에 들어간 원소가 먼저 나오는 성질을 가진다.
스택에는 여러가지 메소드들이 있는데 그 중 대표적인게 push, pop, size이다.
push는 스택의 stack의 맨 마지막에 값을 추가해주는 기능
pop은 스택의 맨 마지막의 값을 제거하는 기능
size는 현재의 크기를 알려주는 기능이다.
자바스크립트의 스택을 구현하기 앞서 스택의 작동원리를 알아보면
처음 스택을 만들어줄 경우 top === 0 즉 아무것도 없는 상태가 됩니다.
그 다음 push로 A라는 top이 가르키는 인덱스에 값을 추가하고 top을 +1해줍니다. 그렇게 되면 top === 1이 되겠죠.
그 다음 pop을 해주게 되면 top - 1이 가르치고 았는 값에 제거해주고 그 다음 top - 1해줍니다.
이때 주의 할 점이 top === 0일때는 pop이 일어나지 않아야하기 때문에 공백인지의 여부를 판단합니다.
class Stack {
constructor() {
this.storage = {};
this.top = 0; // 스택의 가장 상단을 가리키는 포인터 변수를 초기화 합니다.
}
size() {
return this.top;
}
// 추가 연산
push(element) {
this.storage[this.top] = element;
this.top += 1;
}
// 삭제 연산
pop() {
// 빈 스택일 경우
if (this.top === 0) {
return;
}
const result = this.storage[this.top-1];
delete this.storage[this.top-1];
this.top -= 1;
return result;
}
}
728x90
'코플릿 > 알고리즘' 카테고리의 다른 글
06_[순열] 새로운 치킨 소스 레시피 (0) | 2021.12.07 |
---|---|
05_rockPaperScissors (0) | 2021.12.07 |
03_[구현] 보드 게임 (0) | 2021.12.07 |
02_[Greedy] 편의점 알바 (0) | 2021.12.07 |
01_[Greedy] 짐 나르기 (0) | 2021.12.07 |