Today
Total
07-01 02:55
관리 메뉴

T-coding

백준 1662 압축 / C++ 본문

Baekjoon

백준 1662 압축 / C++

Tcoding 2022. 11. 30. 11:03
728x90
728x90

더보기
#include <iostream>
#include <string>
#include <stack>
using namespace std;
#define MAX 55
string s;
int visited[MAX];
stack<int> st;
int func(int start, int end)
{
	int result = 0;
	for (int i = start; i < end; i++)
	{
		if (s[i] == '(')
		{
			int K = s[i - 1] - '0';
			result += K * func(i + 1, visited[i]) - 1;
			i = visited[i];
			continue;
		}
		result++;
	}
	return result;
}

int main(void)
{
	cin >> s;

	for (int i = 0; i < s.length(); i++)
	{
		if (s[i] == '(')
		{
			st.push(i);
		}
		else if (s[i] == ')')
		{
			visited[st.top()] = i;

			st.pop();
		}
	}

	cout << func(0, s.length()) << "\n";

	return 0;
}
728x90
300x250

'Baekjoon' 카테고리의 다른 글

백준 4659 비밀번호 발음하기 / Python  (0) 2023.03.16
백준 1107 리모컨 / C++  (0) 2022.11.30
백준 1188 음식 평론가 / C++  (0) 2022.11.30
백준 1684 같은 나머지 / C++  (0) 2022.11.30
백준 1753 최단경로 / C++  (0) 2022.11.30