SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
stack의 대표적인 유형 괄호문제
pop하기 전에 항상 미리 stack이 있는지 체크해야하는데
까먹어서 자꾸 틀렸던 !!!
while문을 돌려서 ans != 0 이 되는 시점에서 반복문을 멈춰도 될 것 같다
T = int(input())
for test_case in range(1, T+1):
txt = list(input())
stack = []
ans = 0
for i in txt:
# (나 {가 들어오면 stack에 넣기
if i == '(' or i == '{':
stack.append(i)
# )가 들어오고 스택의 마지막이 (면 pop
if i == ')':
if stack and stack[-1] == '(':
stack.pop()
# 아니면 ans +1
else:
ans += 1
# }가 들어오고 스택의 마지막이 {면 pop
if i == '}' :
if stack and stack[-1] == '{':
stack.pop()
# 아니면 ans += 1
else:
ans += 1
# 스택에 남은게 없고, ans가 0이면 1출력
if len(stack) == 0 and ans == 0:
print(f'#{test_case} 1')
else:
print(f'#{test_case} 0')
'SWEA' 카테고리의 다른 글
[SWEA] 4874 Forth - python (0) | 2023.02.19 |
---|---|
[SWEA] 4873 반복 문자 지우기 -python (0) | 2023.02.18 |
[SWEA] 4871 그래프 경로 -python (0) | 2023.02.14 |
[SWEA] 1974 스도쿠 검증 -python (0) | 2023.02.13 |
[SWEA] 1215 [S/W 문제해결 기본] 3일차 - 회문1 -python (0) | 2023.02.13 |