T = int(input())
result = []
for _ in range(T):
VPS = input()
num = 0
for i in VPS:
if num < 0 :
break
if i == '(':
num+=1
if i == ')':
num-=1
if num == 0:
result.append("YES")
else:
result.append("NO")
for item in result:
print(item)
위 문제에서 포인트로 잡은것은 괄호의 수 입니다. 즉 문자를 하나씩 봤을때 ( 와 ) 문자가 있는데
1.이 두개의 숫자가 일치해야 한다.
2.괄호가 열렸으면 그 숫자만큼 닫혀야한다.
위의 두가지를 생각하여 괄호가 열리면 +1 닫히면 -1을 하였습니다.
하지만 괄호가 먼저 닫히거나 중간에 열린 괄호 이상으로 닫혔다면 수는 -1이상이 되기 때문에
NO를 출력하는 형식으로 작성하였습니다.
'Algorithm' 카테고리의 다른 글
[백준] 1920번 수 찾기 파이썬 문제 풀이 (0) | 2022.03.06 |
---|---|
[백준] 10845번 큐 파이썬 문제풀이 (0) | 2022.03.01 |
[정렬] 이코테 QuickSort - 퀵정렬 (0) | 2022.02.27 |
1일 1 알고리즘 시작 (0) | 2022.01.16 |