본문 바로가기

Algorithm/자료구조

(C++) - LeetCode (easy) 1614. Maximum Nesting Depth of the Parentheses

반응형

https://leetcode.com/problems/maximum-nesting-depth-of-the-parentheses/description/

stack을 이용한 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

정답 변수 depth와 stack st를 선언 후 적절히 초기화해줍니다.

📔 풀이과정

( 부터 )까지는 하나의 depth 범위라고 할 수 있습니다. 따라서 (인 경우 stack에 넣고 )인 경우 stack에 남아있는 열린 괄호 (의 개수가 현재 범위의 depth가 됩니다.

1. s의 문자에 대해 for loop를 수행합니다.

  1-1. 닫힌 괄호 )라면 depth와 stack의 size를 비교해 더 큰 값을 저장해줍니다. 이후 계산이 완료되었으므로 stack에서 (를 pop해줍니다.

  1-2. 열린 괄호 )라면 stack에 해당 원소값을 push해줍니다.

📔 정답 출력 | 반환

depth를 반환합니다.


📕 Code

📔 C++

class Solution {
public:
    int maxDepth(string s) {
        int depth = 0;
        stack <char> st;
        for(auto c : s) {
            if(c == ')') {
                depth = max(depth, (int)st.size());
                st.pop();
            } else if(c == '(') {
                st.push(c);
            }
        }
        return depth;
    }
};

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.