본문 바로가기
카테고리 없음

백준 10799 C++

by park_hama 2024. 8. 2.

한 달 사이에 5키로가 찌고 0.1t이 코앞이다. 그러니 배가 고파도 참아야겠다. 

각설하고. 이 문제는 스택을 사용했다.

그려서 학인하다 보니 규칙을 발견했다.

 

1.  '('가 스택에 쌓여 있을 때 레이저 맞으면 '('갯수 맞큼 sum에 추가된다.

2. ')'이거 만나면 '(' 스택에서 pop

#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include<stack>

using namespace std;


int main() {
    
    string input;
    stack<char> st;
    int sum = 0;
   

    cin >> input;

    for (int i = 0; i < input.length(); i++) {

        if (input[i] == '(')
            st.push(input[i]);
        else if (input[i] == ')' && input[i - 1] == '(') {
            st.pop();
            sum = sum + st.size();
        }
        else {
            sum = sum + 1;
            st.pop();

        }

    }

    cout << sum << '\n';
    return 0;
}