문제를 보고 괄호의 종류가 하나니까 count 세서 비교하면 되겠구나! 해서 코드를 작성했는데 첫번째 예제만 보고 풀다보니 두번째 예제가 통과가 안됐다...
import sys
input = sys.stdin.readline
t = int(input())
for _ in range(t):
command = input().rstrip()
l, r = 0, 0
for i in command:
if i == '(':
l += 1
elif i == ')':
r += 1
if l == r:
print('YES')
else:
print('NO')
나는 바보바보
그래서 그냥 stack 사용해서 소거법으로 했다!
import sys
input = sys.stdin.readline
t = int(input())
for _ in range(t):
command = input().rstrip()
stack = []
for i in command:
if len(stack) == 0 and i == '(':
stack.append(i)
elif len(stack) == 0 and i == ')':
stack.append(i)
elif stack[-1] == '(' and i == ')':
stack.pop()
else:
stack.append(i)
if len(stack) == 0:
print('YES')
else:
print('NO')
좋은 단어 문제랑 비슷하게 풀었다! 근데 뭔가 더 좋은 풀이가 있을거 같은데 코테 리뷰할 때 다른 사람들 코드를 한번 들어봐야겠다. 다들 푸는 방법이 달라서 매번 리뷰할 때마다 새로운걸 알아가서 재밌다!
import sys
input = sys.stdin.readline
N = int(input())
for _ in range(N):
ps = input().rstrip()
while '()' in ps:
ps = ps.replace('()', '')
if ps:
print("NO")
else:
print("YES")
와 코드 리뷰하면서 의혁님의 코드가 진짜 파이썬스러워서 추가했다.
시간은 똑같지만 ㄹㅇ 간단하다.!!