본문 바로가기

PS/백준

[백준 4949번 ] 균형잡힌 세상 (파이썬/python)

728x90

https://www.acmicpc.net/problem/4949

 

4949번: 균형잡힌 세상

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

www.acmicpc.net

 

스택을 이용하면 쉽게 풀 수 있는문제.

마지막에 스택에 남아있는 괄호가 있는지까지 판단해야지 된다!

 

만약 이걸 판단 안 할 경우

입력값으로 [[ 같은것들이 들어와도 yes를 반환하니까!

 

 

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
while 1:
    input_str = input()
 
    if input_str == '.':
        break
    st = []
    result = True
    for s in input_str:
        if s == '[' or s == '(':
            st.append(s)
        elif s == ']':
            if st and st[-1== '[':
                st.pop()
            else:
                result = False
                break
        elif s == ')':
            if st and st[-1== '(':
                st.pop()
            else:
                result = False
                break
    if not result or st:
        print('no')
    elif result:
        print('yes')
 
cs
728x90