처음엔 합차방식을 사용해서 푸는걸로 생각했습니다.
a = int(input())
for i in range(a):
b = input()
s = list(b)
sum = 0
for i in s:
if i == '(':
sum += 1
elif i == ')':
sum -= 1
if sum < 0:
print('NO')
break
if sum > 0:
print('NO')
elif sum == 0:
print('YES')
답은 맞지만 정석적인 방법은 스택을 사용하는거네요.
num = int(input())
for i in range(num):
input_data = input()
bracket = []
for j in input_data:
if j == "(":
bracket.append(j)
elif j == ")":
if len(bracket) != 0 and bracket[-1] == "(":
bracket.pop()
else:
bracket.append(")")
break
if len(bracket) == 0:
print("YES")
else:
print("NO")
'Coding Test' 카테고리의 다른 글
[Leetcode] 17. Letter Combinations of a Phone Number (0) | 2022.06.24 |
---|---|
[Leetcode] 3. Longest Substring Without Repeating Characters (0) | 2022.05.21 |
[백준] 9935. 문자열 폭발 (0) | 2022.04.05 |
[LeetCode]121.주식을 사고팔기 가장 좋은 시점(Best Time to Buy and Sell Stock) (0) | 2022.02.18 |
[LeetCode]238.자신을 제외한 배열의 곱 (0) | 2022.02.16 |