728x90
반응형
https://www.acmicpc.net/problem/11899
#include <iostream>
#include <stack>
#include <string>
using namespace std;
int main() {
stack<char> s;
stack<char> t;
string str;
cin >> str;
for(int i = 0; i < str.length(); i++){
char c = str[i];
if(c == '('){
s.push(str[i]);
} else {
if(!s.empty()) s.pop();
else t.push(str[i]);
}
}
cout << s.size() + t.size() << endl;
return 0;
}
여는 괄호일 때
s에 push
닫는 괄호일 때
스택 내부에 여는 괄호가 있을 때 -> s pop
없다 -> t에 push
s와 t에 push된 괄호는 쌍이 되는 괄호를 붙여주어야 한다.
따라서 앞과 뒤에 붙여야 할 괄호의 최소 개수는 s와 t의 size 합이다.
728x90
반응형
'Algorithm > BAEKJOON' 카테고리의 다른 글
[BOJ] 1018번 체스판 다시 칠하기 (C++) (0) | 2021.12.29 |
---|---|
[BOJ] 10816번 숫자 카드 2 (C++) (0) | 2021.12.29 |
[BOJ] 1181번 단어 정렬 (C++) (0) | 2021.12.26 |
[BOJ] 9012번 괄호 (C++) (0) | 2021.12.25 |
[BOJ] 11866번 요세푸스 문제 0 (C++) (0) | 2021.12.25 |