What I Learned/Algorithm Practice
[백준 - python] 4949번: 균형잡힌 세상
Interrobang
2023. 10. 6. 22:57
문제 링크
4949번: 균형잡힌 세상
각 문자열은 마지막 글자를 제외하고 영문 알파벳, 공백, 소괄호("( )"), 대괄호("[ ]")로 이루어져 있으며, 온점(".")으로 끝나고, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마지막에
www.acmicpc.net
문제 풀이
while 1:
stack = []
str = input()
if str == ".":
break
for letter in str:
if letter == "[" or letter == "(":
stack.append(letter)
if letter == "]":
if len(stack) != 0 and stack[-1] == "[":
stack.pop()
else:
stack.append(letter)
if letter == ")":
if len(stack) != 0 and stack[-1] == "(":
stack.pop()
else:
stack.append(letter)
if len(stack) == 0:
print("yes")
else:
print("no")

*key point: 9012번 문제와 유사하나 괄호의 종류가 늘어났다. 스택과 조건문을 활용해서 정상적으로 같은 종류의 괄호가 닫힐 때를 찾는다.