백준
[백준]4949번: 균형잡힌 세상(파이썬)
초코바나나쉐이크
2023. 6. 10. 13:47
https://www.acmicpc.net/problem/4949
4949번: 균형잡힌 세상
각 문자열은 마지막 글자를 제외하고 영문 알파벳, 공백, 소괄호("( )"), 대괄호("[ ]")로 이루어져 있으며, 온점(".")으로 끝나고, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마지막에
www.acmicpc.net
문제를 보자마자 스택으로 푸는 문제라고 생각하여 바로 코드를 작성했다.
result=[]
while True:
stack=[]
word = list(input())
btn=1
if word[0] == '.':
for i in result:
print(i)
exit()
for i in word:
#print(stack)
if i == '(':
#print("(추가")
stack.append(i)
elif i == '[':
#print("[추가")
stack.append(i)
elif i == ')':
if stack == []:
btn=0
elif stack[-1] != '(':
btn=0
#print("(없음")
else:
#print("(제거")
stack.pop()
elif i == ']':
if stack == []:
btn=0
elif stack[-1] != '[':
btn=0
#print("[없음")
else:
#print("[제거")
stack.pop()
if btn==0 or stack!=[]:
result.append("no")
else:
result.append("yes")
#print(f"최종 스택:{stack}")
#print(result)
엄청나게 오랜만에 풀어본 스택문제였다.