본문 바로가기
BaekJoon/C++

10799 : 쇠막대기 (C++)

by GrayChoi 2021. 1. 18.
반응형

 

 

10799번: 쇠막대기

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

www.acmicpc.net


- 스택을 이용하여 푸는 문제이며

'()'가 들어오면 안에 스택안에 있던 사이즈를 측정하여

결과 값에 더하고 ')'가 입력되면 스택에서 pop을 하고

결과값에 1을 더한다.

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

using namespace std;

int main() {
    string stick;
    stack<char> t;
    int result = 0;

    cin >> stick;
    
    for(int i = 0; i < stick.size(); i++) {
        if(stick[i] == '(') {
            if(stick[i + 1] == ')') {
                    result += t.size();
                i++;
            } else {
                t.push('(');
            }
        } else {
            t.pop();
            result++;
        }
    }

    cout << result;
    
    return 0;
}

 

 

 

반응형

'BaekJoon > C++' 카테고리의 다른 글

2810 : 컵홀더 (C++)  (0) 2021.01.19
4796 : 캠핑 (C++)  (0) 2021.01.19
2751 : 수 정렬하기 2 (C)  (0) 2021.01.11
2750 : 수 정렬하기 (C)  (0) 2021.01.11
1874 : 스택 수열 (C)  (0) 2021.01.10

댓글