Logo
(追記) (追記ここまで)

13535번 - 괄호 부분 문자열

시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 512 MB148362448.980%

문제

괄호 문자열은 다음과 같이 정의된다.

  1. 빈 문자열은 괄호 문자열이다.
  2. S가 괄호 문자열일 때, (S)도 괄호 문자열이다.
  3. S와 T가 괄호 문자열이라면, ST도 괄호 문자열이다.
  4. 모든 괄호 문자열은 위의 3개 규칙으로만 만들 수 있다.

예를 들어, "()()"와 "((()))(())"는 괄호 문자열이고, ")(()", "(((((", "())" 는 아니다.

문자열 S가 주어졌을 때, S의 부분 문자열 중에서 서로 다른 괄호 문자열의 개수를 구하는 프로그램을 작성하시오. 이 때, 빈 문자열은 제외해야 한다.

입력

첫째 줄에 문자열의 길이 N (1 ≤ N ≤ 500,000)이 주어진다.

둘째 줄에 문자열 S가 주어진다.

출력

첫째 줄에 S의 부분 문자열 중에서 서로 다른 괄호 문자열의 개수를 출력한다.

제한

예제 입력 1

10
()()()()()

예제 출력 1

5

예제 입력 2

7
)(())()

예제 출력 2

3

힌트

  • 예제 1: "()", "()()", "()()()", "()()()()", "()()()()()"
  • 예제 2: "()", "(())", "(())()"

출처

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /