사용 언어 - Python3
9012번: 괄호 (실버4, 스택)
문제 ★스택 문제★
정답
간단한 스택 문제 !!
(내 코드 풀이)
열린 괄호를 스택에 넣어, 닫힌 괄호가 있으면 열린 괄호 한개를 빼주는 형태.
열린 괄호인 경우, 스택에 append / 닫힌 괄호인 경우, 스택에 pop
닫혔으나 스택에 아무것도 없는 경우 ans = False로 하여, 더이상의 for문을 진행하지 않고 break.
최종적으로 스택에 아무것도 안남아있고, ans = True여야 조건 만족 YES!
# 정답
n = int(input())
for i in range(n):
stack = []
ans = True
vps = input()
for j in range(len(vps)):
if vps[j] == '(':
stack.append(vps[j])
elif vps[j] == ')' and len(stack)>=1:
stack.pop()
else:
ans = False
break
if len(stack) == 0 and ans == True:
print("YES")
else:
print("NO")
굳이 리스트 형태로 저장하고 append, pop 하지 않아도 된다.
리스트가 비어있다는 개수만 확인하면 되는 문제이기 때문이다! 리스트 대신 sum = 0 형태로 해도 된다.
그렇다면, append 대신 sum+= 1, pop 대신 sum -= 1, 예외처리는 sum = -1로 하여 break로 설정한다.
전체적인 flow는 동일하다.
레퍼런스
- 깃허브 정답
'Algorithm > 스택&큐&덱&힙' 카테고리의 다른 글
[백준] 18258번 큐 2 (0) | 2023.01.21 |
---|---|
[백준] 1874번 스택 수열 (0) | 2023.01.20 |
[백준] 10773번 제로 (0) | 2023.01.20 |
[백준] 10828번 스택 (0) | 2023.01.20 |
[백준] 4949번 균형잡힌 세상 (0) | 2023.01.16 |
댓글