alpyrithm_알파이리즘

[알고리즘][Python] 백준(BOJ) 4949 균형잡힌 세상_파이썬 본문

Algorithm/백준 알고리즘_Python

[알고리즘][Python] 백준(BOJ) 4949 균형잡힌 세상_파이썬

알파이 2020. 11. 1. 07:53

 

4949 균형잡힌 세상    www.acmicpc.net/problem/4949

 

4949번: 균형잡힌 세상

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

www.acmicpc.net

 

 

문제 풀기 전 공부할 것 : 자료 구조, 문자열, 스택

 

 

 

 

 

 

 

풀이

<내용>

  • while문을 통해 반복해서 입력값을 받고 만약 입력값이 '.'이면 빠져나온다.
  • 입력받은 string에서 ()[]을 따로 저장한다.
  • 괄호를 확인하는 check 함수를 통해 균형 잡힌 문자열인지 아닌지 판단한다.

 

 

<코드>

import sys
input = sys.stdin.readline

def check(vps):
    stk = []
    pairs = {'(':')', '[':']'}
    while vps:
        v = vps.pop()
        if v == ')' or v == ']':
            stk.append(v)
        else:
            if not stk:
                return False
            s = stk.pop()
            if pairs[v] != s:
                return False
    if stk:
        return False
    return True

while True:
    string = input().rstrip()
    if string == '.':
        break
        
    vps = []
    for s in string:
        if s in '()[]':
            vps.append(s)
            
    if check(vps):
        print('yes')
    else:
        print('no')

 

 

 

비슷한 문제

2020/10/31 - [Algorithm/백준 알고리즘] - [알고리즘][Python] 백준(BOJ) 9012 괄호_파이썬

 

[알고리즘][Python] 백준(BOJ) 9012 괄호_파이썬

9012 괄호 www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문..

alpyrithm.tistory.com

 

 

 

 

 

728x90
반응형
Comments