1. 문제와 예제
2. 전체 코드
import sys
input = sys.stdin.readline
# 입력 받기
T = int(input().rstrip()) # 입력 데이터 수
for _ in range(T):
ps = input().rstrip() # 괄호 문자열
stack = [] # 스택
isValid = True # 바르게 구성된 문자열인지
for p in ps:
if p == '(':
stack.append(p)
else: # p == ')'
if (len(stack) != 0 and stack[-1] == '('):
stack.pop()
else:
isValid = False
break
if (len(stack) != 0 or not isValid):
print("NO")
else:
print("YES")
3. 풀이
스택의 구조를 사용하면 된다. 풀이는 이 문제의 더 어려운 버전인 4949번 (균형잡힌 세상) 문제의 풀이를 참고하면 좋을 것 같다.
'백준' 카테고리의 다른 글
[백준] 10816번 파이썬 (숫자 카드 2) (0) | 2024.03.21 |
---|---|
[백준] 10773번 파이썬 (제로) (0) | 2024.03.20 |
[백준] 4949번 파이썬 (균형잡힌 세상) (0) | 2024.03.20 |
[백준] 2839번 파이썬 (설탕 배달) (0) | 2024.03.20 |
[백준] 2164번 파이썬 (카드2) (0) | 2024.03.20 |