Published 2020. 12. 29. 05:27
 

10799번: 쇠막대기

여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저

www.acmicpc.net

#include <iostream>
#include <string>
#include <stack>
using namespace std;
int main() {
    string a;
    cin >> a;
    int n = a.size();
    stack<int> s;
    int ans = 0;
    for (int i=0; i<n; i++) {
        if (a[i] == '(') {
            s.push(i);
        } else {
            if (s.top()+1 == i) {
                s.pop();
                ans += s.size();
            } else {
                s.pop();
                ans += 1;
            }
        }
    }
    cout << ans << '\n';
    return 0;
}

'Problem set' 카테고리의 다른 글

[백준] 10828: 스택  (0) 2020.12.29
[백준] 10818: 최소, 최대  (0) 2020.12.29
[백준] 10430: 나머지  (0) 2020.12.29
[백준] 9613: GCD 합  (0) 2020.12.29
[백준] 9095: 1, 2, 3 더하기  (0) 2020.12.29
복사했습니다!