๋ฐฑ์ค€ #9012

์•Œ๊ณ ๋ฆฌ์ฆ˜

์Šคํƒ์„ ์ด์šฉํ•˜์—ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌํ˜„ํ–ˆ์œผ๋ฉฐ, "(" ๊ฐ€ ์ž…๋ ฅ๋˜๋ฉด ์Šคํƒ์— pushํ•ด์ฃผ๊ณ  ")" ๊ฐ€ ์ž…๋ ฅ๋˜๋ฉด ์Šคํƒ์—์„œ popํ•ด์ฃผ์—ˆ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ, ")" ๊ฐ€ ์ž…๋ ฅ ๋˜์—ˆ์„ ๋•Œ ์Šคํƒ์ด ๋น„์–ด์žˆ๊ฑฐ๋‚˜, ๋ฌธ์ž์—ด์ด ๋๋‚ฌ์„ ๋•Œ ์Šคํƒ์— ๊ฐ’์ด ๋‚จ์•„์žˆ์œผ๋ฉด NO, ์Šคํƒ์ด ๋น„์–ด์žˆ์œผ๋ฉด YES์ด๋‹ค.

python

n = int(input())

for i in range(n):
    stack = []
    flag = 1
    vps = input()
    for j in vps:
        if j == "(":
            stack.append(j)
        else:  # ")"์ด๋ฉด์„œ
            if not stack:  # ์Šคํƒ์ด ๋น„์–ด์žˆ์œผ๋ฉด
                flag = 0  # flag๋ฅผ ๋ฐ”๊ฟ”์ฃผ๊ณ 
                break  # ๋ฐ˜๋ณต๋ฌธ์„ ์ข…๋ฃŒํ•œ๋‹ค
            stack.pop()  # ์•„๋‹ˆ๋ฉด, ์Šคํƒ์˜ ๊ฐ€์žฅ ์œ— ๊ฐ’์„ ๋นผ์ค€๋‹ค.
    if len(stack) != 0 or flag == 0:  # ์Šคํƒ์— ๊ฐ’์ด ๋‚จ์•„์žˆ๊ฑฐ๋‚˜, flag๊ฐ€ 0์ด๋ฉด "NO"
        print("NO")
    else:  # ์•„๋‹ˆ๋ฉด "YES"
        print("YES")

์ข‹์€ ์›นํŽ˜์ด์ง€ ์ฆ๊ฒจ์ฐพ๊ธฐ