Home (Python)[백준][스택] 균형잡힌 세상
Post
Cancel

(Python)[백준][스택] 균형잡힌 세상

4949번: 균형잡힌 세상

정답 비율: 32.400%

문제 풀이

입력으로 들어오는 왼괄호 중 가장 마지막의 여는 괄호 다음에는 반드시 그에 맞는 닫는 괄호가 입력으로 들어와야 한다. 스택으로 문제를 풀어보자.

소스코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
while True :
    sentence = input()
    stack = []

    if sentence == "." :
        break

    for i in sentence :
        # 여는 괄호는 스택에 추가
        if i == '[' or i == '(' :
            stack.append(i)

        # 닫는 괄호가 스택 맨위의 여는 괄호랑 일치하면 스택에서 지워주기
        elif i == ']' :
            if len(stack) != 0 and stack[-1] == '[' :
                stack.pop() 
            else : 
                stack.append(']')
                break
        
        elif i == ')' :
            if len(stack) != 0 and stack[-1] == '(' :
                stack.pop()
            else :
                stack.append(')')
                break

    if len(stack) == 0 :
        print('yes')
    else :
        print('no')
This post is licensed under CC BY 4.0 by the author.