문제 링크
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
'파이썬 알고리즘 문제 풀이' 카테고리의 다른 글
BaekJoon Online Judge 10808번 파이썬 (1) | 2022.05.17 |
---|---|
BaekJoon Online Judge 10845번 파이썬 (1) | 2022.05.17 |
BaekJoon Online Judge 10828번 파이썬 (0) | 2022.05.11 |
BaekJoon Online Judge 11004번 파이썬 (0) | 2022.05.10 |
BaekJoon Online Judge 11652번 파이썬 (0) | 2022.05.10 |