반응형
이번엔 지난 시간에 직접 구현한 stack을 활용하여 아래 문제를 풀어볼게요!
https://school.programmers.co.kr/learn/courses/30/lessons/12906
굳이 ... 구현해서 안풀어도 되지만 ㅠㅠㅠ 구현 공부할겸 .. 해보도록 하죠...!
class Stack {
#list = [];
#index = -1;
push(val) {
this.#list[++this.#index] = val;
}
pop() {
if (this.#index === -1) throw new Error('Element does not exist.');
return this.#list[this.#index--];
}
size() {
return this.#index + 1;
}
getStack() {
let stack = [];
for (let i = 0; i <= this.#index; i++) {
stack[i] = this.#list[i];
}
return stack;
}
getTail() {
if (this.#index === -1) return null;
return this.#list[this.#index];
}
}
function solution(arr) {
const stack = new Stack();
for (let i = 0; i < arr.length; i++) {
if (stack.getTail() !== arr[i]) {
stack.push(arr[i]);
}
}
return stack.getStack();
}
stack 구현에 대한 내용은 블로그 링크에 있습니다!
구현한 Stack의 문제점 및 고민
직접 구현을 통해 효율성 문제로 시간을 보니, 기본 javascript list를 console하는 것과 getStack()을 통해 console하는 부분에서 속도의 이슈가 있어요.
지난 번 글에서도 getStack()에서 문제가 있을 느낌이 있었지만, 정말로 문제가 있는 것을 보니... 아무래도 getStack을 하기 위한 방법을 좀 더 고민할 필요가 생겼어요..
알아봤지만.. 그냥 list 자체를 반환해야하는 경우엔 list를 통해 구현하는게 낫겠다 라는 생각을 했네요ㅠㅠ
수정하여 다시 찾아오도록 할게요...! ㅎㅎㅎ
반응형
'자료구조' 카테고리의 다른 글
Javascript 자료구조 2. 큐(queue) 활용 프로그래머스 프로세스 (0) | 2023.06.21 |
---|---|
Javascript 자료구조 2. 큐(queue) (0) | 2023.06.21 |
Javascript 자료구조 1. 스택(stack) (0) | 2023.06.17 |