https://www.acmicpc.net/problem/9012
풀이
1, 문자열을 받아준 뒤에 문자열의 글자를 for문으로 분석한다.
2, 만일 "("가 들어오면 list안에 넣어준다.
3, 만일 ")"가 들어오면 앞에 "("가 들어왔는지 확인한다.
4, 이전에 "("가 들어오지않았다면 리스트에 문자를 추가한 뒤 break한다. (마지막에 list의 내용물이 남았는지 확인하는데 문자를 추가해줌으로써 NO를 출력하게 만든다.
5, list의 내용물 확인, 만일 비어있다면 YES 비어있지않다면 NO를 출력한다.
# 9012번 괄호
import sys
n = int(sys.stdin.readline())
for _ in range(n):
stack = []
word = sys.stdin.readline().rstrip()
for i in word:
if i == "(":
stack.append(i)
else:
if len(stack) == 0:
stack.append("0")
break
else:
stack.pop()
if len(stack) != 0:
print("NO")
else:
print("YES")
출력결과
'백준 > 구현' 카테고리의 다른 글
[백준] 1475번 방 번호 - 파이썬 (0) | 2022.05.19 |
---|---|
[백준] 14425번 문자열 집합 - 파이썬 (0) | 2022.05.18 |
[백준] 10773번 제로 - 파이썬 (0) | 2022.04.06 |
[백준] 6996번 애너그램 - 파이썬 (0) | 2022.04.05 |
[백준] 4358번 생태학 - 파이썬 (0) | 2022.04.04 |