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
'Problem Solving' 카테고리의 다른 글
[백준] 1920 수 찾기 python 알고리즘 문제 (0) | 2022.04.25 |
---|---|
[백준] 1978 소수 찾기 python 알고리즘 문제 (0) | 2022.04.25 |
[백준] 9012 괄호 python 알고리즘 문제 (0) | 2022.04.25 |
[백준] 10773 제로 python 알고리즘 문제 (0) | 2022.04.24 |
[백준] 2164 카드2 python 알고리즘 문제 (0) | 2022.04.24 |
댓글