링크

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14eWb6AAkCFAYD

풀이

괄호가 나오는 문제는 대부분 스텍을 사용한다.

해당 문제에서는 <>, (), {}, [] 의 4가지 괄호가 나오기 때문에 4개의 스텍을 선언하고 괄호가 열리면

스텍에 추가하고 닫히면 팝을하며 검사해 나가면 된다.

괄호가 닫힐때 스텍이 비어있는경우는 잘못된 괄호로 판단함

코드

for tcase in range(1,11):
    testc = input()
    ipt = input()
    res=True
    one = []
    two = []
    tree = []
    four = []

    for t in ipt:
        if t == "(":
            one.append(1)
        elif t==")":
            if len(one)==0:
                res = False
                break
            one.pop()
        
        elif t=="[":
            two.append(1)
        elif t == "]":
            if len(two)==0:
                res = False
                break
            two.pop()

        elif t=="{": 
            tree.append(1) 
        elif t=="}":
            if len(tree)==0:
                res = False
                break
            tree.pop()

        elif t=="<":
            four.append(1)
        else:
            if len(four)==0:
                res = False
                break
            four.pop()

    if res and len(one)+len(two)+len(tree)+len(four)==0:
        print(f"#{tcase} 1")
    else:
        print(f"#{tcase} 0")