https://www.acmicpc.net/problem/10799
* 의사코드
#include<bits/stdc++.h>
using namespace std;
int n,ret;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
stack<char> s;
string str;
cin >> str;
for (int i = 0; i < str.size();++i) {
if (str[i] == '(') {
s.push('(');
}
else {
if (str[i - 1] == '(') {
s.pop();
ret += s.size();
//레이저를 맞은 막대갯수만큼 조각이 늘어난다.
}
else {
s.pop();
//막대1개가 끗낫으므로
//막대의수 == 남아있는'('수 감소
ret++;
}
}
}
cout << ret;
}
'Algorithm > 스택' 카테고리의 다른 글
프로그래머스 크레인인형뽑기 게임 c++ // stack, 구현 (0) | 2023.11.14 |
---|---|
백준 2504 c++ // 스택응용 (0) | 2023.09.01 |
백준 4949 cpp // 괄호검사 알고리즘 (0) | 2023.08.22 |
백준 2493 cpp // 스택 idea 발상, 초기예외 처리하는법 : 범위밖의 객체를 push하라 (0) | 2023.08.17 |
백준 1874 cpp // 유효스택검사 알고리즘 (0) | 2023.08.17 |