코딩테스트
[Baekjoon] 백준 9012번 : 괄호 with Python
CleanCoder
2021. 1. 21. 04:27

백준에서 문제 보기 : https://www.acmicpc.net/problem/9012
9012번: 괄호
괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고
www.acmicpc.net
난이도
실버 4

알고리즘
1) '(' 이면 스택에 push
2) ')'를 만날시 스택에서 pop 한게 '(' 이면 계속 진행 아닐시 'NO'
3) 다 돌고 난 후 스택이 비었으면 'YES' 아니면 'NO'
해결 방안
문제에서 요구하는 사항은 '스택'을 구현하여 해결하는 개념을 요구합니다.
import sys
input = sys.stdin.readline
n = int(input())
for i in range(n):
stack = []
string = input()
ck = 1
for ch in string:
if ch == '(':
stack.append(ch)
elif ch == ')':
if len(stack) == 0:
ck = 0
break;
else:
stack.pop()
if ck == 1 and len(stack) == 0:
print("YES")
else:
print("NO")
출력
