지나가던 개발자
[Python] 백준 9012번(괄호) 문제 풀이 본문
for i in range(int(input())):
stack = []
S = input()
printed = False
for char in S:
if char == "(":
stack.append(char)
continue
try:
stack.pop()
except:
print("NO")
printed = True
break
if printed:
continue
if len(stack) != 0:
print("NO")
continue
print("YES")
스택 자료구조를 사용해서 문제를 풀었다. "("이라면 스택에 넣어주고, ")"이라면 마지막으로 추가된 "("을 스택에서 빼주다가 스택에 더 이상 ")"에 매칭되는 "("이 존재하지 않거나 "("이 ")"보다 많은 경우에는 "NO"를, "("과 ")"의 수가 같을 경우(스택의 길이가 0인 경우)에는 "YES"를 출력해 주는 알고리즘이다.
'PS > Python' 카테고리의 다른 글
[Python] 백준 10828번(스택) 문제 풀이 (0) | 2022.12.09 |
---|---|
[Python] 백준 4949번(균형잡힌 세상) 문제 풀이 (0) | 2022.12.08 |
[Python] 백준 14495번(피보나치 비스무리한 수열) 문제 풀이 (0) | 2022.12.07 |
[Python] 백준 1526번(가장 큰 금민수) 문제 풀이 (0) | 2022.12.05 |
[Python] 백준 16499번(동일한 단어 그룹화하기) 문제 풀이 (0) | 2022.12.05 |
Comments