Problem Solving
[백준] 4949 균형잡힌 세상 python 알고리즘 문제
DuncanKim
2022. 4. 25. 11:00
728x90
문제 4949. 균형잡힌 세상


1. 나의 코드와 발상 과정
import sys
answer_list = []
while True:
a = sys.stdin.readline().rstrip()
if a == '.':
break
answer = []
for i in a:
if i.isalpha() or i == " ":
continue
elif i == '.':
break
elif i == '(':
answer.append(i)
elif i == '[':
answer.append(i)
elif i == ')':
if len(answer) != 0 and answer[-1] == '(':
answer.pop()
else:
answer.append(')')
continue
elif i == ']':
if len(answer) != 0 and answer[-1] == '[':
answer.pop()
else:
answer.append(']')
continue
if len(answer) == 0:
answer_list.append("yes")
else:
answer_list.append("no")
for i in answer_list:
print(i)
괄호 문제를 이전에 풀었기 때문에, 쉽게 풀 수 있었다.
다만, 이번에는 대괄호가 추가되었기 때문에, 정수를 스택처럼 활용하는 방법은 쓸 수 없었다.
각 라인마다 문자열로 인식을 하고, 알파벳 또는 띄어쓰기일 경우 continue를 하고,
그 외의 것의 경우, append()와 pop()을 활용하여 len()을 가지고 yes, no를 판별해 주었다.
자세한 풀이 방법은 괄호 문제(9012)에 나와있다.
https://masterpiece-programming.tistory.com/26
2. 아쉬운 점
스택에 대한 확실한 개념이해를 마무리 짓는 결정타였다.
문제 출처:
728x90