시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 1024 MB30023719483.262%

문제

웹에서 데이터를 주고받기 위해 가장 많이 사용하는 포맷은 JSON(JavaScript Object Notation)이다. 그러나 프론트엔드 개발자인 설영이는 자바스크립트가 싫어서 자신만의 방법으로 데이터를 표기하기로 결정하였다. 그 방법은 바로 ASON(AGCU Script Object Notation)이다. ASON은 대괄호([ ]) 안에 객체에 대한 정보를 표기하는 방법이다. ASON 객체는 다음과 같이 표기한다.

[ (원소) (원소) (원소) ... (원소) ]

이때 (원소)로 허용되는 것은 양의 정수 자료형의 표기, 문자열 자료형의 표기 또는 다른 ASON 객체의 표기이다. 원소와 원소 사이, 원소와 대괄호 사이에는 하나의 스페이스 문자(' ')가 반드시 들어가 있어야 하며, 기타 모든 공백 문자는 허용하지 않는다. 또한 어떤 원소도 포함하지 않는 빈 ASON 객체가 있을 수 있는데, 이 객체는 [ ]로 표기한다. 대괄호 사이에 하나의 스페이스 문자가 들어가 있음에 유의하시오.

각각의 자료형은 다음과 같이 표기한다.

  • 양의 정수 자료형: 십진법을 사용하여 $1$자 이상 $17$자 이하의 숫자로 표기한다. 가장 높은 자리에는 0이 올 수 없다.
  • 문자열 자료형: $1$자 이상의 알파벳(a, b, ..., z, A, B, ..., Z)을 사용하여 표기한다. 대문자와 소문자가 혼용될 수 있다. 알파벳 이외의 문자는 사용될 수 없다.

ASON 객체는 원소가 나열된 순서를 중요하게 생각하기 때문에, 원소가 나열된 순서가 다른 두 객체는 다른 ASON 객체이다. 따라서 하나의 ASON 객체를 표현하는 방식은 하나뿐이다. 어떤 문자열 $S$에 대응되는 하나의 ASON 객체가 존재한다면, $S$를 ASON 객체의 유효한 표기라 한다.

ASON 객체가 하나 있다면, 그 객체가 메모리에서 얼마큼의 용량을 차지하는지를 계산할 수 있다. ASON 객체의 용량은 다음과 같이 계산한다.

  • (해당 ASON 객체가 소유한 모든 원소의 용량의 합 $+ 8$byte)

또한 양의 정수 자료형 원소의 용량은 $8$byte, 문자열 자료형 원소의 용량은 (문자열의 길이 $+ 12$byte)다. 빈 ASON 객체는 어떤 다른 원소도 소유하지 않으므로 $8$byte만큼의 용량을 차지한다. ASON 객체의 유효한 표기가 주어지면, 그 객체의 용량을 계산하는 프로그램을 작성하시오.

입력

한 줄에 걸쳐, ASON 객체의 유효한 표기가 주어진다. 주어지는 문자열의 길이는 스페이스 문자를 제외하고 $15\,000$ 이하이다.

출력

주어진 표기에 대응되는 ASON 객체의 용량이 몇 byte인지를 하나의 정수로 출력한다.

예제 입력 1

[ 1 [ 2 3 ] foo [ 7 bar ] [ ] [ [ ] ] ]

예제 출력 1

110

예제 입력 2

[ [ runtime is short ] you [ need [ cpp 20 ] ] ]

예제 출력 2

136

예제 입력 3

[ [ [ [ [ [ [ aGCu ] ] ] ] ] ] 998244353998 ]

예제 출력 3

80

이 예제에 등장하는 정수는 32bit 정수 자료형에 담길 수 없다.

출처

Contest > BOJ User Contest > 와쿠(AGCU)컵 > 제1회 와쿠(AGCU)컵 K번