출처 : https://www.acmicpc.net/problem/9012
코드 & 풀이
import sys
# 입력 처리
data = sys.stdin.read().splitlines()
N = int(data.pop(0))
def VPS(pstring):
stack = []
for parenthesis in pstring:
if parenthesis == ')':
if not stack:
return "NO"
stack.pop()
else:
stack.append(parenthesis)
return "NO" if stack else "YES"
answer = ""
for _ in range(N):
answer += VPS(data.pop(0)) + "\n"
print(answer)
스택을 사용하는데
스택에는 ( 만 넣을 겁니다.
그렇기에 ) 가 오면 무조건 pop 하는거죠.
그런데
stack이 비어있다?
그러면 VPS가 안된다는 것이기 때문에
NO를 반환해줍니다.
728x90
'백준 > 실버' 카테고리의 다른 글
백준1463. 1로 만들기 - Python, DP, DFS (0) | 2025.05.11 |
---|---|
백준1021. 회전하는 큐 - Python, deque, rotate (0) | 2025.05.09 |
로봇 - Python, 구현 (0) | 2025.03.26 |
트리의 부모 찾기 - Python, BFS, 재귀 깊이 제한 키우기 (0) | 2025.03.07 |
백준 > 9711번 > 피보나치 - JAVA (2) | 2023.06.02 |