[백준] 9012번 : 괄호

letsbebrave·2022년 3월 7일
0

codingtest

목록 보기
41/146

문제

시행착오

마지막 테스트케이스였던 ())(()를 NO로 판별해내는 게 어려워서 다른 풀이를 참고했다.
)(의 경우 닫히지 않았기 떄문에 어떻게 하면 NO로 풀어낼 수 있을지가 어려웠던 것 같다.

처음 풀이

import sys

def sol(word):
    first = 0
    second = 0
    for i in range(len(word)):
        if word[i] == "(":
            first += 1
        elif word[i] == ")":
            second += 1
    if first == second:
        return "YES"
    else:
        return "NO"

n = int(sys.stdin.readline())

for i in range(n):
    word = sys.stdin.readline().strip()
    print(sol(word))

수정 풀이

import sys

def sol(word):
    answer = "NO"
    sum = 0
    for i in range(len(word)):
        if word[i] == "(":
            sum += 1
        elif word[i] == ")":
            sum -= 1
        if sum == -1:
            return answer
            break
    if sum == 0:
        answer = "YES"
    return answer

n = int(sys.stdin.readline())

for i in range(n):
    word = sys.stdin.readline().strip()
    print(sol(word))
profile
그게, 할 수 있다고 믿어야 해

0개의 댓글