백준에서 문제 보기 : https://www.acmicpc.net/problem/9012
난이도
실버 4
알고리즘
1) '(' 이면 스택에 push
2) ')'를 만날시 스택에서 pop 한게 '(' 이면 계속 진행 아닐시 'NO'
3) 다 돌고 난 후 스택이 비었으면 'YES' 아니면 'NO'
해결 방안
문제에서 요구하는 사항은 '스택'을 구현하여 해결하는 개념을 요구합니다.
import sys
input = sys.stdin.readline
n = int(input())
for i in range(n):
stack = []
string = input()
ck = 1
for ch in string:
if ch == '(':
stack.append(ch)
elif ch == ')':
if len(stack) == 0:
ck = 0
break;
else:
stack.pop()
if ck == 1 and len(stack) == 0:
print("YES")
else:
print("NO")
출력
'코딩테스트' 카테고리의 다른 글
백준(Baekjoon) 1874번 : 스택 수열 with Python (0) | 2021.01.22 |
---|---|
백준(Baekjoon) 1080번 : 행렬 with Python (0) | 2021.01.22 |
백준(Baekjoon) 11399번 : ATM with Python (0) | 2021.01.21 |
[Baekjoon] 백준 11047번 : 동전 0 with Python (0) | 2021.01.21 |
[Baekjoon] 백준 9093번 : 단어 뒤집기 with Python (0) | 2021.01.21 |
댓글