코플릿/알고리즘

자바스크립로 구현하는 스택

테오구 2021. 10. 9. 20:25
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