[문제]
https://www.acmicpc.net/problem/9012
[풀이]
알고리즘에 stack 카테고리가 있어서 stack을 이용해 풀었다.
'('일 경우 stack에 쌓아주고, ')'일 경우 pop을 해준다.
만약 ')'이고 stack이 비어있을 경우 미리 선언해둔 flag를 True로 설정하고 조건문을 빠져나온다.
그 후 stack이 비어있고, flag이 True일 경우에는 "YES"를 출력하고 아닐 경우 "NO"를 출력한다.
[코드]
if __name__ == '__main__':
for _ in range(int(input())):
s = list(input())
stack = []
flag = False
for i in range(len(s)):
if s[i] == '(':
stack.append(s[i])
else:
if not stack:
flag = True
break
else:
stack.pop()
if not stack and not flag:
print("YES")
else:
print("NO")
'문제풀이 > BOJ' 카테고리의 다른 글
[Python] BOJ/백준 2164번 카드2 (0) | 2021.07.24 |
---|---|
[Python] BOJ/백준 1259번 팰린드롬수 (0) | 2021.07.22 |
[Python] BOJ/백준 10989번 수 정렬하기 3 (0) | 2021.07.22 |
[Python] BOJ/백준 10814번 나이순 정렬 (0) | 2021.07.22 |
[Python] BOJ/백준 1920번 수 찾기 (0) | 2021.07.22 |