๊ธฐ๋ก๋ฐฉ

BOJ_9012 : ๊ด„ํ˜ธ ๋ณธ๋ฌธ

CodingTest/Python

BOJ_9012 : ๊ด„ํ˜ธ

Soom_1n 2022. 8. 7. 16:16

๐Ÿ‘‰ ๋ฌธ์ œ๋งํฌ

 

9012๋ฒˆ: ๊ด„ํ˜ธ

๊ด„ํ˜ธ ๋ฌธ์ž์—ด(Parenthesis String, PS)์€ ๋‘ ๊ฐœ์˜ ๊ด„ํ˜ธ ๊ธฐํ˜ธ์ธ ‘(’ ์™€ ‘)’ ๋งŒ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š” ๋ฌธ์ž์—ด์ด๋‹ค. ๊ทธ ์ค‘์—์„œ ๊ด„ํ˜ธ์˜ ๋ชจ์–‘์ด ๋ฐ”๋ฅด๊ฒŒ ๊ตฌ์„ฑ๋œ ๋ฌธ์ž์—ด์„ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด(Valid PS, VPS)์ด๋ผ๊ณ 

www.acmicpc.net



๐Ÿ”ธ ๋ฌธ์ œ ๋ถ„์„ ๐Ÿ”ธ

  • ๊ด„ํ˜ธ์˜ ์Œ์„ ํ™•์ธํ•˜๋Š” ์ „ํ˜•์ ์ธ ์Šคํƒ ๋ฌธ์ œ์ด๋‹ค.

๐Ÿ”ธ ์ฝ”๋“œ ๐Ÿ”ธ

T = int(input())

for i in range(T):
    S = input()
    arr = S[0]
    flag = False
    for j in S[1:]:
        if j == '(': 
            arr += j
        else:
            if len(arr) == 0 or arr[-1] == ')':
                flag = True
                break
            else :
                arr = arr[:-1]
    
    if flag : print("NO")
    else:
        if len(arr) != 0: print("NO")
        else : print("YES")

๐Ÿ”ธ ์ฝ”๋“œ ํ•ด์„ ๐Ÿ”ธ

  • ์Šคํƒ์€ ๋ฆฌ์ŠคํŠธ๋กœ ๊ตฌํ˜„ํ–ˆ๋‹ค.
  • ' ( '์ด ์ž…๋ ฅ๋˜๋ฉด ๋ฆฌ์ŠคํŠธ์— ํฌํ•จํ•œ๋‹ค.
  • ' ) '์ด ์ž…๋ ฅ๋˜๋ฉด ๋ฆฌ์ŠคํŠธ์˜ ๋งˆ์ง€๋ง‰ ์›์†Œ๋ฅผ ํ™•์ธํ•ด ์Œ์ด ๋งž์œผ๋ฉด ๋งˆ์ง€๋ง‰ ์›์†Œ ์ œ๊ฑฐ,
    ์Œ์ด ๋งž์ง€ ์•Š์œผ๋ฉด ๋ฐ˜๋ณต๋ฌธ์„ ์ค‘์ง€ํ•˜๊ณ  NO๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.
  • ๋ชจ๋“  ๋ฐ˜๋ณต์ด ๋๋‚œ ํ›„ ๋ฆฌ์ŠคํŠธ์— ์›์†Œ๊ฐ€ ๋‚จ์•„์žˆ์œผ๋ฉด NO๋ฅผ, ์•„๋‹ˆ๋ฉด YES๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

๐Ÿ”ธ end ๐Ÿ”ธ

  • ์Šคํƒ์ด๋‚˜ ๋ฐํฌ ๋ชจ๋“ˆ์„ ์จ์•ผํ•˜๋‚˜ ํ–ˆ๋Š”๋ฐ ๋ฆฌ์ŠคํŠธ๋กœ๋„ ์ถฉ๋ถ„ํžˆ ์‹œ๊ฐ„์•ˆ์— ๊ตฌํ˜„์ด ๋˜์—ˆ๋‹ค.

728x90