728x90
SMALL
문제
https://www.acmicpc.net/problem/9012
9012번: 괄호
괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고
www.acmicpc.net
풀이
스택을 이용해서 여는괄호('(')일경우 stack안에 넣고, 닫는괄호(')')일경우 stack에서 제거한다
올바른 괄호 문자열이 아닌경우는
1. 여는괄호가 없이 닫는괄호만 있는경우 = stack.pop인데 stack가 빈경우
2. 여는 괄호가 닫히지 않은 경우 = 모든 문자열을 탐색했지만, stack이 비어있지 않은 경우
이다.
import sys
N = int(sys.stdin.readline())
for _ in range(N):
stack=[]
PS = sys.stdin.readline().split('\n')[0]
for i in PS:
if i=='(': #여는 괄호일때 stack에 삽입
stack.append(i)
else: # 닫는 괄호일때 stack에 있던 여는 괄호 삭제
if len(stack)==0: #여는 괄호가 없는데 닫는괄호가 존재하는 경우
stack.append(i)
break
stack.pop()
if len(stack)!=0: # 반복문이 끝났을때 stack가 비지 않았다면 NO 출력
print("NO")
else:
print("YES")
728x90
LIST
'코테공부 > python 백준' 카테고리의 다른 글
파이썬 백준 1620 : 나는야 포켓몬 마스터 이다솜 (0) | 2024.03.25 |
---|---|
파이썬 백준 1927번 : 최소 힙 (0) | 2024.03.25 |
파이썬 백준 10866번 : 덱 (0) | 2024.03.24 |
파이썬 백준 10845 : 큐 (0) | 2024.03.24 |
파이썬 백준 10828 : 스택 (0) | 2024.03.24 |