728x90
반응형
https://www.acmicpc.net/problem/9012
9012번: 괄호
괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고
www.acmicpc.net
풀이
이 문제를 풀기 위해 몇가지 순서를 생각했다.
1. '(' 괄호가 나오면 stack에 넣어준다.
2. ')' 괄호가 나오면 stack을 확인해준다.
2-1. 만약 stack이 비어있다면 괄호의 짝이 맞지 않으므로 check를False로 바꾼 뒤, break를 이용해 반복문을
빠져나온다.
2-2. 만약 stack에 데이터가 들어있다면 짝이 있으므로 stack의 마지막에 들어온 데이터를 지워준다.
3. for문이 모두 돌고나면 stack에 데이터가 들어있거나 check가 False이면 'NO'를 출력한다.
(stack에 데이터가 들어있으면 닫는 괄호보다 여는 괄호가 많다는 뜻이기 때문에 짝이 맞지 않는다.)
4. stack이 비어잇고 check가 True면 여는 괄호와 닫는 괄호의 짝이 맞으므로 'YES'를 출력한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
for _ in range(int(input())):
s=input()
stack=[]
check=True
for i in s:
if i=='(':
stack.append(i)
elif not stack:
check=False
break
else:
stack.pop()
if stack or not check:
print('NO')
else:
print('YES')
|
cs |
728x90
반응형
'Python3 > 백준 알고리즘' 카테고리의 다른 글
2022.02.24 [백준] (python 파이썬) 숫자 카드 2 (0) | 2022.02.24 |
---|---|
2022.02.23 [백준] (python 파이썬) 체스판 다시 칠하기 (0) | 2022.02.23 |
2022.02.23 [백준] (python 파이썬) 최대공약수와 최소공배수 (0) | 2022.02.23 |
2022.02.23 [백준] (python 파이썬) 수 찾기 (0) | 2022.02.23 |
2022.02.22 [백준] (python 파이썬) 이항 계수 1 (0) | 2022.02.22 |
댓글