백준 - 균형잡힌세상 (Stack) / Silver 4 / 4949번

Ed Park·2022년 3월 15일
0
post-custom-banner

문제 📋

백준 삼성기출 - 균형잡힌세상

풀이 📝

sentences = []
sentence = input()

while sentence != '.':
    sentences.append(sentence)
    sentence = input()

for i in sentences:
    stack = []

    for letter in i:
        if letter == '(' or letter == '[':
            stack.append(letter)

        elif letter == ')':
            if stack:
                item = stack.pop()
                if item != '(':
                    stack.append(item)
                    break
            else:
                stack.append(letter)
                break

        elif letter == ']':
            if stack:
                item = stack.pop()
                if item != '[':
                    stack.append(item)
                    break
            else:
                stack.append(letter)
                break

    if stack:
        print("no")
    else:
        print("yes")

stack 문제에서 단골 주제인 괄호 체크 문제이다.
기존의 문제와 조금 다른점은 괄호의 종류가 2가지 라는 것이다.
괄호가 짝이 맞으면 stack에서 빼서 괄호를 없애주었고
짝이 안맞는 상황엔 stack에 괄호를 의도적으로 넣고 break 해주었다.

그렇게 하여 stack안의 요소 유무에 따라 짝이 맞는지 여부를 판단할 수 있었다.

profile
Simple is the best
post-custom-banner

0개의 댓글