개발자일걸요..?

4949번 균형잡힌 세상 본문

알고리즘코딩/Baekjoon Online Judge

4949번 균형잡힌 세상

Re_A 2021. 2. 22. 20:11
728x90
반응형

문제링크 : www.acmicpc.net/problem/4949

 

4949번: 균형잡힌 세상

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

www.acmicpc.net

 



<알고리즘>

  1) 문자열 입력받기(단 sys.stdin.readline()을 사용할 경우 맨 뒤에 개행 문자가 오기때문에 종료조건을 만들때 주의해야함)

  2) 문자열을 돌면서 '('나 '['가 있으면 stack에 push하고 ')'나 ']'가 오면 stack의 top이 자신의 짝꿍인지 확인 후 yes/no 결정

 

 

 

( 메모리 : 28776KB    시간 : 140ms)

check = []
def push(a):
    check.insert(0,a)
def pop():
    del check[0]
def size():
    return len(check)
def top():
    return check[0]
    
import sys
while(True):
    check.clear()
    exam = sys.stdin.readline()
    if(exam ==".\n"):
        break
    flag = True
    for i in range(len(exam)-1):
        if(exam[i] == '('):
            push('(')
        elif(exam[i] == '['):
            push('[')
        elif(exam[i] == ')'):
            if(size()==0):
                flag = False
                break
            else:
                if(top()=='('):
                    pop()
                else:
                    flag = False
                    break
        elif (exam[i] == ']'):
            if (size() == 0):
                flag = False
                break
            else:
                if (top() == '['):
                    pop()
                else:
                    flag = False
                    break
    if((flag == True) and (size()==0)):
        print("yes")
    else:
        print("no")
반응형

'알고리즘코딩 > Baekjoon Online Judge' 카테고리의 다른 글

17298번 오큰수  (0) 2021.02.23
1874번 스택 수열  (0) 2021.02.22
9012번 괄호  (0) 2021.02.22
10773번 제로  (0) 2021.02.22
10828번 스택  (0) 2021.02.22
Comments