만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

순서수

시간 제한2초메모리 제한2048 MB

요약
중괄호로 쓰인 중첩 집합이 주어지면 그 집합이 나타내는 정수 n을 출력합니다. n에 해당하는 집합의 원소는 정확히 n개입니다.
난이도

쉬움10점 중 3점

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

문제

순서수(ordinal number)는 음이 아닌 정수의 집합을 확장한 개념이다. 음이 아닌 정수 xx마다 대응하는 순서수 f(x)f(x)가 정해진다. 처음 몇 개는 다음과 같이 정의된다.

  • 0은 빈 집합에 대응한다: f(0)=f(0) = {}.
  • 1은 원소가 f(0)f(0) 하나뿐인 집합에 대응한다: f(1)=f(1) = {f(0)f(0)}$ = {{}}.
  • 2는 원소가 f(0)f(0)과 f(1)f(1)인 집합에 대응한다: f(2)=f(2) = {f(0),f(1)f(0), f(1)}$ = {{},{{}}}.
  • 양의 정수 kk는 그보다 앞선 모든 순서수를 원소로 갖는 집합에 대응한다: f(k)=f(k) = {f(0),f(1),…,f(k−1)f(0), f(1), \ldots , f(k - 1)}.

정수에 대응하지 않는 순서수도 같은 방식으로 정의할 수 있지만, 이 문제에서는 필요하지 않다.

입력

첫 줄에 음이 아닌 정수 nn (0≤n≤150 \le n \le 15)에 대응하는 순서수의 표현이 주어진다. 문자열은 "{", ",", "}" 문자로만 이루어진다.

각 집합의 표현에서 모든 원소는 정확히 한 번씩 나타난다. 집합은 원소의 순서를 바꿔도 같으므로, 원소의 순서는 임의이다.

출력

주어진 순서수에 대응하는 정수 nn을 출력한다.

예제4

  1. 예제 1

    입력
    {}
    
    예상 출력
    0
    
  2. 예제 2

    입력
    {{}}
    
    예상 출력
    1
    
  3. 예제 3

    입력
    {{},{{}}}
    
    예상 출력
    2
    
  4. 예제 4

    입력
    {{{}},{{{}},{}},{}}
    
    예상 출력
    3