백준 문제풀이

백준 #4949 균형잡힌 세상(python)

후; 2022. 1. 27. 00:53
반응형

 

백준 4949 '균형잡힌 세상' 문제이다.

 

보통 이 문제를 풀기 전에 '괄호' 문제를 접해 봤을 것이다.(실버 문제)

 

그렇다면 이 문제를 스택의 특성을 통해서 아주 쉽게 구현할 수 있다.

 

그냥 괄호인 것만 받아서 짝이 맞으면 pop, 아니면 추가해서

마지막에 스택이 비어 있다면 전부 짝이 맞는 것이고, 아니면 짝이 맞지 않는 것이다.

 

아주 간단하다.

 

 

다음은 파이썬으로 작성된 코드이다.

while 1:
    line = input()
    if line == '.':
        break
    st = []
    for i in line:
        if i == '(' or i == ')' or i == '[' or i == ']':
            if len(st) == 0:
                st.append(i)
            elif st[-1] == '(' and i == ')':
                st.pop()
            elif st[-1] == '[' and i == ']':
                st.pop()
            else:
                st.append(i)
    if len(st) == 0:
        print("yes")
    else:
        print("no")

 

 

반응형