https://www.acmicpc.net/problem/4949
while (True):
word = input()
if word == ".":
break
stack = []
for i in word:
if i == '(' or i == '[':
stack.append(i)
elif i ==')':
if len(stack) != 0 and stack[-1] == '(':
stack.pop()
else:
stack.append(i)
elif i ==']':
if len(stack) != 0 and stack[-1] == '[':
stack.pop()
else:
stack.append(i)
if len(stack) == 0:
print("yes")
else:
print("no")
스택을 이용하여 언제 append와 pop을 할지 기준만 정해준다면 크게 어려움 없이 풀수있는 문제이다
'코딩테스트' 카테고리의 다른 글
프로그래머스 숫자의 표현 level 2 PYTHON (0) | 2024.09.24 |
---|---|
백준 가로수 2485(실버4) PYTHON (0) | 2024.09.10 |
백준 숫자 카드 2 PYTHON (0) | 2024.08.16 |
백준 순서쌍의 곱의 합 13900 PYTHON (0) | 2024.08.13 |
백준 구간 합 구하기 4 11659 (0) | 2024.08.11 |