코딩테스트/Python
[Python] 백준 #9012 - 괄호
yo~og
2021. 12. 2. 12:53
문제
https://www.acmicpc.net/problem/9012
9012번: 괄호
괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고
www.acmicpc.net
풀이
import sys
input=sys.stdin.readline
n = int(input())
for _ in range(n):
arr = list(input()[:-1])
s = []
for a in arr:
if a=='(':
s.append(a)
else:
if len(s) :s.pop()
else:
print("NO")
break
else:
print("NO") if len(s) else print("YES")
스택을 사용하여 풀었다.
) 가 나오면 스택에 있는 ( 와 비교하면서 풀었다.
- 시간을 줄이기 위해 sys.stdin.readline 선언
- 괄호 문자열을 입력받으면 제일 뒤 개행문자를 제거하고 list로 만들어준다.
- 스택 s 선언
- 리스트로 만든 괄호 문자열을 반복문으로 돌려준다
- ( 가 나오면 s에 더해준다.
- ) 가 나오고 스택에 (이 존재하면 즉, 길이가 1이상이면 스택에 있는 것을 pop()
- 길이가 0이면 유효하지 않은 괄호이기 때문에 NO 출력
- 반복문이 끝났을때 s에 ( 이 있으면 NO 출력, 없으면 YES 출력
느낀점
알고리즘 중에서 스택이 제일 재밌는거같다!ㅎㅎ 왤까 ㅠ 쉬워서 그런걸까