[백준] 괄호 9012번 파이썬 Python 자료구조

📌문제 접근

"("와 ")"의 개수를 일일이 파악하지 않고 변수를 생성해서 +1, -1 해줄 수 있다.

NO의 경우
1. ( ) )일 때.
2. "("와 ")"의 개수가 맞지 않을 때

📌내가 작성한 코드

t = int(input())

for i in range(t):
    command = list(input())
    sum = 0

    for j in range(len(command)):
        if command[j] == "(":
            sum += 1
        else:
            sum -= 1

        if sum < 0: # ())일 때
            print("NO")
            break

    if sum > 0:     # 짝 개수가 맞지 않을 떄
        print("NO")
    elif sum == 0:  # 짝 개수가 똑같을 때
        print("YES")

📌풀이

두번 째 for문을 입력받은 괄호의 개수만큼 반복시킨다.
"(", ")"에 따라 +1, -1을 해준다.

"( ) ) ( ( )": 괄호의 짝의 개수가 똑같지만 완전한 괄호인 VPS가 아니다.
이걸 해결하기 위해서
"( ) )"일 때 sum보다 0이 더 커진다. 그때 "NO"출력 후 종료.

좋은 웹페이지 즐겨찾기