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.)