문제 링크
https://www.acmicpc.net/problem/9012
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 |