반응형
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;
}
};
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
'Algorithm > 자료구조' 카테고리의 다른 글
(C++) - LeetCode (easy) 1656. Design an Ordered Stream (0) | 2024.05.25 |
---|---|
(C++) - LeetCode (easy) 1624. Largest Substring Between Two Equal Characters (0) | 2024.05.14 |
(C++) - LeetCode (easy) 1544. Make The String Great (0) | 2024.04.23 |
(C++) - LeetCode (easy) 1528. Shuffle String (0) | 2024.04.21 |
(C++) - LeetCode (easy) 1507. Reformat Date (0) | 2024.04.09 |