관리 메뉴

솜씨좋은장씨

[BaekJoon] 4949번 : 균형잡힌 세상 (Python) 본문

Programming/코딩 1일 1문제

[BaekJoon] 4949번 : 균형잡힌 세상 (Python)

솜씨좋은장씨 2021. 7. 16. 00:33
728x90
반응형

코딩 1일 1문제! 오늘의 문제는 백준의 균형잡힌 세상입니다.

 

4949번: 균형잡힌 세상

하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마

www.acmicpc.net

Solution

import re


def balanced_world(string):
    is_balanced = "yes"
    my_stack = []
    
    open_bracket = ['(', '[']
    close_bracket = [')', ']']
    
    braket_list = list(re.sub(r"[^\(\)\[\]]", '', string))
        
    for idx, bracket in enumerate(braket_list):
        if bracket in open_bracket:
            my_stack.append(bracket)
        elif bracket in close_bracket:
            index = close_bracket.index(bracket)
            
            if len(my_stack) > 0 and my_stack[-1] == open_bracket[index]:
                my_stack.pop()
            else:
                is_balanced = "no"
                break
    if len(my_stack) != 0:
        is_balanced = "no"
            
    return is_balanced
    
    
if __name__ == "__main__":
    while True:
        string = input()
        if string == ".":
            break
        print(balanced_world(string))
 

SOMJANG/CODINGTEST_PRACTICE

1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub.

github.com

Comments