Baekjoon 4949.py [균형잡힌 세상]
내 풀이
import sys
input = sys.stdin.readline
arr = []
while True:
words = list(input().rstrip())
if words[0] == '.':
break
arr.append(words)
result = ['yes'] * len(arr)
for i in range(len(arr)):
stack = []
for word in arr[i]:
if word == '(' or word == '[':
stack.append(word)
elif word == ')' or word == ']':
if len(stack) == 0:
result[i] = 'no'
break
if word == ')':
if stack[-1] == '[':
result[i] = 'no'
break
if word == ']':
if stack[-1] == '(':
result[i] = 'no'
break
stack.pop()
if len(stack) >= 1:
result[i] = 'no'
print(result[i])
풀이 복기
스택을 사용해서 구현함. 풀이방법을 떠올리는것은 쉬웠는데 반례((())
를 생각못하고 성급하게 제출해서 한번 틀려버림.
다른 풀이를 보며
처음 while
문 안에 조건들을 작성했으면 for
을 다시 사용해 순회하는시간을 줄였을것
입력을 끝까지 받고 조건을 작성하려는 습관을 버리자
Author And Source
이 문제에 관하여(Baekjoon 4949.py [균형잡힌 세상]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hohooodo/Baekjoon-4949.py-균형잡힌-세상저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)