본문 바로가기
코딩테스트

[Baekjoon] 백준 9012번 : 괄호 with Python

by CleanCoder 2021. 1. 21.

 

백준에서 문제 보기 : https://www.acmicpc.net/problem/9012

 

9012번: 괄호

괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고

www.acmicpc.net

 

난이도

실버 4

 

 

알고리즘

1) '(' 이면 스택에 push

2) ')'를 만날시 스택에서 pop 한게 '(' 이면 계속 진행 아닐시 'NO'

3) 다 돌고 난 후 스택이 비었으면 'YES' 아니면 'NO'

 

해결 방안

문제에서 요구하는 사항은 '스택'을 구현하여 해결하는 개념을 요구합니다.

 

import sys

input = sys.stdin.readline

n = int(input())
for i in range(n):
  stack = []
  string = input()
  ck = 1
  for ch in string:
    if ch == '(':
      stack.append(ch)
    elif ch == ')':
      if len(stack) == 0:
        ck = 0
        break;
      else:
        stack.pop()
  if ck == 1 and len(stack) == 0:
    print("YES")
  else:
    print("NO")

 

출력

 

댓글