Google 태그 관리자 아이콘

알고리즘 풀이

.leetcode(155. Min Stack)

silvergoni 2021. 1. 9. 21:36
반응형

문제

https://leetcode.com/problems/min-stack/

문제 풀기 전

  1. stack을 구현한다고 생각했다.
  2. 괜히 array로 만들어서 사이즈 도달하면 2배 늘려줘야지 생각하고 만들었따.
  3. 문제를 다시 보고(모든 시간이 상수시간으로 나와야한다는 의미를 보고) 다시 풀었다.

직접 푼 풀이

소요시간: x(문제를 잘못 이해함)

느낀점

  1. 솔루션을 보고 Stack모델을 써도 되는구나 했다. 무조건 array로 구현해야하는 줄 알았는데.. stack두개를 써서 문제를 풀었다.
  2. 솔루션에는 여러가지 방법이 나오는데 개념적으로 비슷한거 같았다.

솔루션 공부 후 추가로 푼 풀이

class MinStack {
    private Stack<Integer> origin;
    private Stack<Integer> min;

    /** initialize your data structure here. */
    public MinStack() {
        origin = new Stack<>();
        min = new Stack<>();
    }

    public void push(int x) {
        origin.push(x);
        if (min.isEmpty() || x <= min.peek()) {
            min.push(x);
        }
    }

    public void pop() {
        int x = origin.pop();
        if (x == min.peek()) {
            min.pop();
        }
    }

    public int top() {
        return origin.peek();
    }

    public int getMin() {
        return min.peek();
    }
}

누적되는 알고리즘 접근 설명서

2021/01/09 - [알고리즘 풀이] - .leetcode(알고리즘 문제풀이 접근)

'알고리즘 풀이' 카테고리의 다른 글

.leetcode(763. Partition Labels)  (0) 2021.01.13
.leetcode(20. Valid Parentheses)  (0) 2021.01.13
.leetcode(53. Maximum Subarray)  (0) 2021.01.09
.leetcode(70. Climbing Stairs)  (0) 2021.01.06
.leetcode(543. Diameter of Binary Tree)  (0) 2021.01.05