Koala - 15기/기초 알고리즘 스터디

[백준/Python] 9012번: 괄호

cooovir 2024. 7. 6. 17:28

https://www.acmicpc.net/problem/9012

문제


문제풀이

괄호 문자열을 입력받아 문자 하나 하나를 리스트의 원소로 저장합니다. 반복문을 통하여 리스트의 원소를 탐색하다가 '('이 나오고 ')'이 나온 경우에는 리스트에서 소괄호 '('와 ')'를 삭제합니다. 이 과정을 재귀함수를 통하여 게속 반복한 후에, 만약 리스트가 빈 원소가 되었으면  문자열이 VPS를 성립하는 경우입니다. 


소스코드

# function
def function(s):
    if len(s) == 0:
        return
     
    fl = len(s)
    for i in range(len(s)-1):
        if s[i] + s[i+1] == '()':
            s.pop(i); s.pop(i)
            break
    if fl == len(s):
        return

    return function(s)

# main
T = int(input())

for i in range(T):
    string = input()
    sList = list(string)

    function(sList)
    if len(sList) == 0:
        print('YES')
    else:
        print('NO')