1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #include <iostream> #include <string> #include <vector> #include <stack> using namespace std; int solution(string str) { vector<char> st; int result = 0; for(int i=0; i<str.length(); i++){ if(str[i]==')'){ st.pop_back(); //) 일때 무조건 하나 빼준다. if(str[i-1]=='(') result+=st.size(); else result+=1; } else st.push_back(str[i]); } return result; } | cs |
이 문제는 ( 일때 push )일때 pop 단, 이전에 () 만나면 stack 의 size를 더해주는 것이다.