T-coding
백준 1662 압축 / C++ 본문
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 |