현욱은 괄호왕이야!!
4 - O · BOJ 15926 · 시간 2 초 · 메모리 512 MB
여는 괄호 ‘(’와 닫는 괄호 ‘)’로 구성된 문자열에서 아래의 조건을 만족하는 문자열을 올바른 괄호 문자열이라고 부른다.
- () 는 올바른 괄호 문자열이다
- 어떤 문자열 x가 올바른 괄호 문자열이라면, (x)도 올바른 괄호 문자열이다.
- 어떤 문자열 x와 y가 올바른 괄호 문자열이라면, xy도 올바른 괄호 문자열이다.
현욱은 친구로부터 생일 선물로 굉장히 긴 괄호 문자열을 받았다(도대체 왜 이런 걸 선물하는걸까?). 하지만 현욱은 올바른 괄호 문자열이 아니면 굉장히 싫어하기 때문에, 받은 괄호 문자열에서 연속한 일부분을 잘라서 올바른 괄호 문자열을 만들려고 한다. 그리고 이왕이면 긴 문자열이 좋으니 현욱은 부분 구간을 최대한 길게 잘라내려고 한다. 현욱을 도와 주어진 괄호 문자열에서 위의 조건을 만족하는 가장 긴 부분 문자열의 길이를 계산하는 프로그램을 작성해보자.
첫 줄에 문자열의 길이 n (1 ≤ n ≤ 200,000)이 주어진다.
둘째 줄에 괄호로만 구성된 길이 n짜리 문자열이 주어진다.
주어진 문자열에서 길이가 가장 길면서 올바른 괄호 문자열인 부분 문자열의 길이를 출력한다. 올바른 괄호 문자열인 부분 문자열을 찾을 수 없는 경우 0을 출력한다.
테스트 케이스
5 (())(
4
14 (()))()((()))(
8
브라우저가 직접 호출합니다. 요청 대상: http://localhost:12010/judge
코딩살구클럽채점서버 레포를 클론한 후 채점서버를 실행하고, IP 입력란에 현재 PC의 IP를, 포트 입력란에 채점서버 포트를 등록하면 로컬 채점서버와 코딩살구클럽이 연동됩니다.
현재는 크롬브라우저만 지원합니다.
- 예시: IP
192.168.22.222, 포트12010
$ ipconfig getifaddr en0> ipconfig | findstr IPv4해설 코드
해설 코드를 보려면 버튼을 눌러주세요.
