반응형
알고리즘
python 백준 균형잡힌 세상(4949)
1. 문제
https://www.acmicpc.net/problem/4949
2. 풀이
- if문으로 '['나 '('가 나오늘 stack list에 추가한다
- i가 ']'이나 ')'가 나올 때 stack의 길이가 0이 아니고, stack의 top이 '['나 '('가 나오면 stack에서 pop을 해준다
- 아니면 break
- 이렇게 스택의 길이가 0이면 'yes'를 출력, 0이 아니면 'no'를 출력
while True:
a = input()
stack = []
if a == ".":
break
for i in a:
if i == "[" or i == "(":
stack.append(i)
elif i == "]":
if len(stack) != 0 and stack[-1] == "[": # stack의 개수가 0이 아니고, stack의 마지막이 '[' 일때
stack.pop() # '['을 pop해줌
else:
stack.append("]")
break
elif i == ")":
if len(stack) != 0 and stack[-1] == "(": # stack의 개수가 0이 아니고, stack의 마지막이 ')' 일때
stack.pop() # '('을 pop해줌
else:
stack.append(")")
break
if len(stack) == 0:
print('yes')
else:
print('no')
[느낀점]
스택을 연습할 수 있는 좋은 문제였다.
반응형
'알고리즘 > Java' 카테고리의 다른 글
[python] 백준 제로(10773) (0) | 2022.01.09 |
---|---|
[python] 백준 괄호(9012) (0) | 2022.01.09 |
[python] 백준 스택(10828) (0) | 2022.01.09 |
[python] 백준 스택 수열(1874) (0) | 2022.01.09 |
[python] 프로그래머스 방금그곡(카카오 신입공채) (0) | 2021.12.26 |