백준(9012) - 괄호(python)

지환·2023년 9월 19일
0

백준(python)

목록 보기
40/67

출처 | https://www.acmicpc.net/problem/9012

코드

T =int(input())


for i in range(T):
    stack = []
    a = input()

    for j in a:
        if j == '(':
            stack.append(j)
        
        elif j == ')':
            if stack:
                stack.pop()
            
            else:
                print("NO")
                break

    else:
        if not stack:
            print("YES")
            
        else:
            print("NO")


코드 설명

  • 기본적인 Stack 문제이다. if문을 어떻게 사용하느냐에 따라 조건 분기를 다르게 가는데 첫 번째 for문을 통해서 돌면서 if문 elif 문으로 2개의 경우의 수로 구체화 하여 풀었다.

  • 추가적으로 ')'을 만났을 때 2가지 경우의 수로 또 나뉘게 된다.

    • stack.pop
    • 그렇지 않을 경우 break
  • stack의 위치에 대해서 왜 for문에서 선언한 이유를 궁금해 한다면, 만약에 T밑에 stack을 선언 했다면, 값 자체가 지속적으로 stack 되어 초기화 되지 못한다.

profile
아는만큼보인다.

0개의 댓글