CS/Algorithm 문제

[BaekJoon] 백준 10799번 쇠막대기

[BaekJoon] 백준 10799번 쇠막대기

 

문제: https://www.acmicpc.net/problem/10799

 

내코드

 

- '('가 들어오면 stack에 push해준다.

- ')'가 들어오면 바로 앞이 '('인 경우 레이저 임으로 stack에 쌓인 값을 result에 더해주고

  바로 앞이 ')'인 경우 막대기 이므로 result++ 해준다.

 

#include <iostream>
#include <string.h>

using namespace std;

int top = 0;
int result = 0;

int main(void)
{
	ios::sync_with_stdio(false);
	cin.tie(0);

	string arr;
	cin >> arr;

	int n = arr.length();
	for (int i = 0; i < n; i++) {
		if (arr.at(i) == '(') {
			top++;
		}
		else {
			top--;
			if (arr.at(i - 1) == '(') result += top;
			else {
				result++;
			}
		}
	}

	cout << result;
	return 0;
}

 

참고

728x90
반응형