GitHub

https://github.com/Choidongjun0830

파이썬 알고리즘 문제 풀이

BaekJoon Online Judge 9012번 파이썬

gogi masidda 2022. 5. 14. 16:42

문제 링크
https://www.acmicpc.net/problem/9012

 

9012번: 괄호

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

www.acmicpc.net


VPS이면 ()가 지워져도 또 다른 ()가 생겨 ()를 지우다보면 결국은 공백의 문자열이 될 것이다.
이 생각을 바탕으로 ()가 있을 경우에 계속 ()를 공백으로 replace 했다.
그리고 더이상 replace가 되지 않을 때, 그 결과가 공백이면 VPS인 것으로 판단하여 YES를 출력하고 공백이 아니라면 NO를 출력하게 하였다.

정답 코드

N = int(input())
PS = []

for i in range(0,N):
  PS.append(input())

for i in range(N):  
  while "()" in PS[i]:
    PS[i] = PS[i].replace("()","")

for i in range(N):
  if PS[i] == "":
    print("YES")
  else:
    print("NO")

 

728x90