-
[백준/BOJ] 9012번 : 괄호 _Python알고리즘/백준(BOJ) 2022. 2. 26. 00:42728x90반응형
9012번: 괄호
괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고
www.acmicpc.net
>문제
>접근방법
괄호를 보니 작년에 배웠던 자료구조에서 스택이 떠올랐다. 스택 사용법을 보다가 top 개념만 차용해 왔다. 여는 괄호 '('를 만나면 top에 1을 더해주고 닫는 괄호 ')'를 만나면 top에 1을 빼준다. 0이 되면 맞고, 음수가 되면( 닫는 괄호가 더 많은 시점에) break를 건다.
>알고리즘
1. T를 n에 입력받고 n만큼 반복 수행한다.
2.top은 0으로 시작한다.
3. '(' 를 만나면 top에 1을 더하고, ')' 를 만나면 top에서 1을 뺀다.
4. 도중에 top이 음수가 되면 break로 빠져나온다.
5. top이 0일 경우(괄호의 개수가 맞아떨어진 경우)에만 YES 출력
>코드
n = int(input()) stack = [] for _ in range(n): stack = input() slen = len(stack) top = 0 for i in range(slen): if stack[i] == '(': top += 1 elif stack[i] == ')': top -= 1 if top < 0: break if top == 0: print("YES") else: print("NO")
>결과
>결론
자야지 이제
LIST'알고리즘 > 백준(BOJ)' 카테고리의 다른 글
[백준/BOJ] 3986번 : 좋은 단어 _Python (0) 2022.02.26 [백준/BOJ] 10773번 : 제로 _Python (0) 2022.02.26 [백준/BOJ] 10798번 : 세로읽기 _Python (0) 2022.02.26 [백준/BOJ] 1652번 : 누울 자리를 찾아라 _Python (0) 2022.02.24 [백준/ BOJ] 5555번 : 반지 _Python (0) 2022.02.23