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

n = int(input()) # 판단할 vps의 수
for i in range(n): # n 만큼 반복해줘
vps = list(input()) # vps를 list형태로 받아오고
if vps[-1] == '(': # 가장 마지막 괄호가 ( 이면 처음부터 아니야
print('NO') # NO 프린트 하고
continue # 바로 다음 반복문으로
l = [] # 왼쪽괄호를 담을 리스트
r = [] # 오른쪽괄호를 담을 리스트
for j in range(len(vps)): # vps의 길이 만큼 반복할거야
if vps[j] == "(": # ( 는
l.append(vps[j]) # 우선 담는다.
elif vps[j] == ")": # ) 가 나오면
r.append(vps[j]) # 우선 담고
if len(l) != 0: # ( 이 담겨 있다면
r.pop() # 함께 상쇄해줘
l.pop() # 괄호가 성립한다는 거지
else: # )가 나왔는데 함께 상쇄할 (가 없다면 vps가 아니야
break # 이 vps는 판단 끝 다음 vps 받으러 나가줘
if len(l) == 0 and len(r) == 0: # 상쇄를 다 하고 두 리스트가 깔끔하게 비어있으면
print("YES") # vps YES 이다
else: # 상쇄를 다 했는데 리스트가 남아 있으면
print("NO") # vps NO 아냐'Problem Solving > 백준' 카테고리의 다른 글
| 백준 최소 힙 - 1927 [파이썬, 자료 구조, 우선순위 큐] (0) | 2023.04.22 |
|---|---|
| 백준 1076 저항 [파이썬, 구현] (0) | 2023.03.24 |
| 백준 23253 자료구조는 정말 최고야 [파이썬, 구현, 자료 구조, 애드 혹, 스택] (0) | 2023.03.22 |
| 백준 11652 카드 [파이썬, 자료 구조, 정렬, 해시를 사용한 집합과 맵] (0) | 2023.03.22 |
| 백준 1764 듣보잡 [파이썬, 자료 구조, 문자열, 정렬, 해시를 사용한 집합과 맵] (0) | 2023.03.21 |
댓글