[BOJ] 10799. 쇠막대기

동스토리 ㅣ 2020. 10. 27. 22:34

반응형

문제

www.acmicpc.net/problem/10799

 

10799번: 쇠막대기

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

www.acmicpc.net


해설

스택을 사용해서 풀이


코드

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

using namespace std;

stack<char> st;

int main() {

	ios::sync_with_stdio(false);
	cin.tie(0), cout.tie(0);
	
	string str;
	int result = 0;
	char before;
	cin >> str;

	for (auto c : str) {
		if (c == '(') st.push(1);
		else {
			st.pop();

			if (before == '(') result += st.size();
			else result++;
		}
		before = c;
	}

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

 

 

반응형

'Development > Algorithm' 카테고리의 다른 글

[BOJ] 1012. 유기농 배추  (0) 2020.10.27
[BOJ] 11724. 연결 요소의 개수  (0) 2020.10.27
[BOJ] 2667. 단지번호붙이기  (0) 2020.10.22
[BOJ] 9012. 괄호  (0) 2020.10.18
[BOJ] 11279. 최대 힙  (0) 2020.10.18