BOJ 9012. 괄호 (Python)
2021. 2. 16. 15:34ㆍProblem Solving/BOJ
BOJ 9012. 괄호
https://www.acmicpc.net/problem/9012
풀이
- 여는괄호 '(' 면 스택에 담는다.
- 닫는괄호 ')' 면 스택에서
pop()
한다. - 만약 중간에 '('가 아닐 때, 스택이 비어있으면 괄호가 맞지 않는 것이므로 답은 "NO"이다.
- 루프가 종료되고 스택이 비어있으면 괄호가 맞는 것이므로 "YES"
- 루프가 종료되어도 스택에 무언가가 남아있다면 괄호가 맞지 않는 것이므로 "NO"이다.
소스코드
import sys
N = int(input())
for _ in range(N):
brackets = sys.stdin.readline().rstrip()
stack = []
is_valid = True
for cur in brackets:
if cur == '(':
stack.append(cur)
continue
if not stack:
is_valid = False
break
if cur == ')':
stack.pop()
continue
if not stack and is_valid == True:
print("YES")
if stack or is_valid == False:
print("NO")
반응형
'Problem Solving > BOJ' 카테고리의 다른 글
BOJ 10828. 스택 (Python) (0) | 2021.02.16 |
---|---|
BOJ 10816. 숫자 카드 2 (Python) (0) | 2021.02.16 |
BOJ 1978. 소수 찾기 (Python) (0) | 2021.02.15 |
BOJ 1920. 수 찾기 (Python) (0) | 2021.02.15 |
BOJ 11650. 좌표 정렬하기 (Python) (0) | 2021.02.15 |