PS/LeetCode
LeetCode / Design / 155번 / Min Stack / JS
KimMinJun
2023. 5. 14. 19:30
Min Stack - LeetCode
Can you solve this real interview question? Min Stack - Design a stack that supports push, pop, top, and retrieving the minimum element in constant time. Implement the MinStack class: * MinStack() initializes the stack object. * void push(int val) pushes t
leetcode.com
< 문제 간단설명 >
stack의 메소드들을 구현하는데 추가로 getMin()을 구현한다. getMin()은 스택의 값중에서 가장 작은값을 반환한다. 그 외 기본 메소드는 push, pop, top을 구현한다.
var MinStack = function() {
this.stack = [];
this.minStack = [];
};
/**
* @param {number} val
* @return {void}
*/
MinStack.prototype.push = function(val) {
this.stack.push(val);
if(this.minStack.length === 0) {
this.minStack.push(val);
}
else {
if(val < this.minStack.at(-1)) {
this.minStack.push(val);
}
else {
this.minStack.push(this.minStack.at(-1));
}
}
};
/**
* @return {void}
*/
MinStack.prototype.pop = function() {
this.stack.pop();
this.minStack.pop();
};
/**
* @return {number}
*/
MinStack.prototype.top = function() {
return this.stack.at(-1);
};
/**
* @return {number}
*/
MinStack.prototype.getMin = function() {
return this.minStack.at(-1);
};
/**
* Your MinStack object will be instantiated and called as such:
* var obj = new MinStack()
* obj.push(val)
* obj.pop()
* var param_3 = obj.top()
* var param_4 = obj.getMin()
*/