티스토리 뷰

www.acmicpc.net/problem/10799

 

10799번: 쇠막대기

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

www.acmicpc.net

#include <iostream>
#include <stack>
#include <string>

using namespace std;

int main() {

    string parentheses ; //괄호를 받는다
    stack<char> stack1;  //래이저인지 쇠막대기의 끝인지 판단하기 위한 스택
    int cnt = 0;         //결과값  

    cin >> parentheses;

    for (int i = 0; i < parentheses.length(); i++) {
	//여는괄호일때
        if (parentheses[i] == '(') {
            stack1.push('(');
        }
	//닫는괄호일때
        else {
            stack1.pop();
            //래이저 판정
            if (parentheses[i - 1] == '(') cnt += stack1.size();
            else cnt++;
        }
    }
    cout << cnt;
}

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함