문제의 조건은
처음에 위 문제를 접했을 때,
괄호의 갯수 맞추기만 생각하고 2번째 조건을 생각하지 못한채로 풀어서 실패하였다....
개발자는 데이터/문제를 받았을 때, 그에 대한 사항을 정확히 인지하고 준비해야하므로 좀 더 차분해지고 집중해야할 필요가 있을것같다.😭
위 문제는 파이썬 내장함수인 remove를 사용하면 쉽게 구현할 수 있다.
참고로 remove를 사용할 때,삭제할 요소가 중복된다면
리스트의 왼쪽에서 오른쪽요소로 왼쪽에 있는걸 먼저 삭제한다.
# boj, 9012 : 괄호, Python3
T = int(input())
ps = []
result = 0
for _ in range(T):
ps.append(input().split())
for i in range(len(ps)):
for j in range(len(ps[i])):
result += ps[i][j].count("(")
result -= ps[i][j].count(")")
if result == 0:
print('YES')
else:
print('NO')
result = 0
T = int(input())
for i in range(T):
ps = list(input())
while len(ps) != 0:
if ps[0] == ')':
print('NO')
break
else:
if ')' in ps:
ps.remove(')')
ps.remove('(')
else:
print("NO")
break
if len(ps)==0:
print("YES")
https://www.acmicpc.net/problem/9012