본문 바로가기
Beakjoon&프로그래머스/파이썬

[백준/파이썬]9012번 괄호

by 현장 2021. 5. 7.

-코드

from sys import stdin
for _ in range(int(input())):
    c = stdin.readline()
    r = 0
    for i in range(len(c)):
        if c[i] == '(':
            r += 1
        elif c[i] == ')':
            r -= 1
        if r < 0:
            print("NO")
            break
    if r == 0:
        print("YES")
    if r > 0:
        print("NO")

처음에 count를 이용해서 '('의 개수와 ')'의 개수가 같을 경우 YES를 출력하게 했으나 2번째 입출력의 경우가 틀려서 문자열을 하나하나 검사하자 해서 for문을 사용하는 것을 생각했고 이 경우도 count랑 비슷해서 새로운 if문을 추가해야 할 필요가 있는 것 같아서 같은 문자가 반복되어 2번이 될 경우 추가적으로 조작될 것이 필요할 것 같아 2번 반복이 될 경우 수를 변경해주는 것으로 했었으나 며칠 고민을 해보고 안돼서 찾아보니 쉽게 풀려서 아쉬웠습니다..