아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Yeah, but How?

면접 대비

시간 제한1초메모리 제한1024 MB

요약
균형 잡힌 괄호 문자열 S가 주어질 때, 괄호만 남기면 S가 되고 길이가 500,000 이하인 올바른 수식(1, +, 괄호)을 만든다.
난이도

보통10점 중 5점

유형
스택, 트리, 재귀, 구현
정답자
아직 제출이 없습니다

문제

(와 )로만 이루어진 문자열 SS가 아래 조건을 충족하면, 이를 균형 잡힌 괄호 문자열이라고 한다.

  • SS에 1과 +를 원하는 위치에 적절히 추가해서 제대로 된 수식을 만들 수 있다.

    • 예로, (()())는 ((1+1)+(1)+1)((1+1)+(1)+1) 등의 수식을 만들 수 있으므로 균형 잡힌 괄호 문자열이다.
    • 하지만, ())(는 1과 +를 어떻게 넣어도 제대로 된 수식을 만들어 낼 수 없으므로 균형 잡힌 괄호 문자열이 아니다.

여기서, 제대로 된 수식은 다음과 같이 정의된다.

  • 11은 제대로 된 수식이다.
  • T_1T\_1과 T_2T\_2가 제대로 된 수식이라면, 두 수식을 더하는 T_1+T_2T\_1+T\_2도 제대로 된 수식이다.
  • TT가 제대로 된 수식이라면, 수식에 괄호를 씌운 (T)(T)도 제대로 된 수식이다.

세훈이는 이 정의에 궁금증을 가지고, 균형 잡힌 괄호 문자열이 주어질 때 수식을 직접 만들어 보기로 했다.

입력

첫 번째 줄에 균형 잡힌 괄호 문자열 SS가 주어진다. (2≤∣S∣≤200,000)(2\le\lvert S\rvert\le 200\\, 000)

출력

첫 번째 줄에 주어진 괄호 문자열로 만들 수 있는 수식 TT를 출력한다.출력되는 수식 TT는 다음 조건을 충족해야 한다.

  • 수식의 길이는 500,000500\\, 000 이하여야 한다.
  • TT는 제대로 된 수식이어야 한다.
  • TT에서 (와 )만 남기면 SS가 만들어져야 한다.
  • TT는 (, ), 1, +로만 이루어져야 한다. 특히, 수식의 중간에 공백 등의 문자가 들어가면 안 된다.

입력 조건 내에서, 위 조건을 충족하는 수식을 만들 수 있음을 증명할 수 있다.

가능한 수식이 여러 가지인 경우, 그중 아무거나 하나를 출력한다.

예제1

  1. 예제 1

    입력
    (()())
    
    예상 출력
    ((1+1)+(1)+1)