반응형
코드
import sys
n = int(input())
for i in range(n):
stack = []
data = sys.stdin.readline()
d = list(data)
ans = 0
for j in d:
if j == '(':
stack.append(j)
elif j == ')':
if len(stack) == 0:
ans = -1
else:
stack.pop()
if len(stack) == 0 and ans == 0:
print('YES')
else:
print('NO')
설명
'(' 가 나오면 스택에 push하고 ')' 가 나오면 스택에서 pop 해준다. pop을 실행했을 때 스택에 아무것도 없거나, 마지막에 스택이 비어있지 않으면 'NO'를 출력하고 그렇지 않으면 'YES'를 출력한다.
반응형
'알고리즘 > 자료구조' 카테고리의 다른 글
[백준][Python] 10866번 덱 (0) | 2022.02.04 |
---|---|
[백준][Python] 2164번 카드2 (0) | 2022.02.04 |
[백준][Python] 18258번 큐 2 (0) | 2022.02.03 |
[백준][Python] 10828번 스택 (0) | 2022.02.03 |
[백준][Python] 1158번 요세푸스 문제 (3) | 2022.02.03 |
댓글