Min Stack
Updated:
Method를 구현하는 문제이다.
Stack을 구현하는데, getMin()메소드 구현이 어려울수 있다.
한번 Stack(Deque)를 돌면서 제일 작은값을 리턴해주면된다.
by Java
class MinStack {
Deque<Integer> stack;
/** initialize your data structure here. */
public MinStack() {
stack = new ArrayDeque<>();
}
public void push(int x) {
stack.add(x);
}
public void pop() {
stack.pollLast();
}
public int top() {
return stack.peekLast();
}
public int getMin() {
int min = Integer.MAX_VALUE;
Deque<Integer> temp = new ArrayDeque<>(stack);
while(!temp.isEmpty()) {
if(min>temp.peekLast()) {
min = temp.peekLast();
}
temp.pollLast();
}
return min;
}
}
/**
* Your MinStack object will be instantiated and called as such:
* MinStack obj = new MinStack();
* obj.push(x);
* obj.pop();
* int param_3 = obj.top();
* int param_4 = obj.getMin();
*/
Leave a comment