안녕하세요. 오늘은 덧셈식을 만들 거예요.

문제

https://www.acmicpc.net/problem/30884

아이디어

일단 열린괄호, 닫힌괄호가 연속적으로 있는것은 전혀 상관이 없습니다.
그러므로 ()이랑 )(만 처리해주면 됩니다.
() 사이에는 1, )(사이에는 +를 추가해주면 됩니다.

소스코드

#include <iostream>
#include <string>
using namespace std;

int main(void)
{
    ios_base::sync_with_stdio(false); cin.tie(NULL);
    string s;
    int len, i;

    cin >> s; len = s.length();
    for (i = 0; i < len - 1; i++)
    {
        cout << s[i];

        if (s[i] == '(' && s[i + 1] == ')') cout << '1';
        if (s[i] == ')' && s[i + 1] == '(') cout << '+';
    }
    cout << s[len - 1];
}


감사합니다.

0개의 댓글