더 깊이, 더 좋게

면접 대비

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

요약
올바른 괄호 문자열 안에 든 각 숫자에 대해 그 숫자를 감싸는 괄호의 점수를 합산하고, 가장 높은 점수를 출력한다.
난이도

쉬움10점 중 3점

유형
스택, 문자열, 구현
정답자
아직 제출이 없습니다

문제

대괄호, 중괄호, 소괄호와 0부터 9까지의 숫자로 이루어진 문자열 SS가 주어진다. SS는 올바른 괄호 문자열에 숫자를 끼워 넣은 형태이고, 두 숫자가 서로 붙어 있는 경우는 없다. 올바른 괄호 문자열은 다음과 같이 정의된다.

  1. 빈 문자열은 올바른 괄호 문자열이다.
  2. XX가 올바른 괄호 문자열이면 (X)(X), {X}\{X\}, [X][X]도 올바른 괄호 문자열이다.
  3. XX와 YY가 올바른 괄호 문자열이면 XYXY도 올바른 괄호 문자열이다.

SS에 포함된 모든 숫자는 점수를 얻는다. 숫자가 얻는 점수는 괄호에 따라 정해지며, 다음과 같다.

  • 대괄호 [, ] 안에 있는 숫자는 3점이다.
  • 중괄호 {, } 안에 있는 숫자는 2점이다.
  • 소괄호 (, ) 안에 있는 숫자는 1점이다.

한 숫자가 여러 괄호 안에 있으면 각 괄호의 점수를 합한 값이 그 숫자의 점수이다. 주어진 숫자 중에서 가장 높은 점수를 받은 숫자를 aa, aa가 받은 점수를 bb라고 할 때, bb를 출력하시오. 같은 숫자라도 위치가 다르면 점수를 따로 계산한다.

입력

첫째 줄에 문자열 SS가 주어진다. SS의 길이는 100을 넘지 않고, 빈 문자열이 아니며, 숫자를 포함한다.

출력

첫째 줄에 bb를 출력한다.

예제1

  1. 예제 1

    입력
    (1)[{3(5)}((4))]
    
    예상 출력
    6