[๋ฐฑ์ค€] 9012 - ๊ด„ํ˜ธ

ยท

1 min read

๐Ÿ’ก๋ฌธ์ œ ๋ถ„์„ ์š”์•ฝ

-- ๋ฌธ์ œ --

์ž…๋ ฅ : T, ( , )

  • () ๊ด„ํ˜ธ๋ฌธ์ž์—ด์ด VPS์ธ์ง€ ์•„๋‹Œ์ง€ ํŒ๋‹จํ•ด์„œ YES / NO ํ‘œ์‹œ

๐Ÿ’ก์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๊ณ„

  1. T : ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ ์ˆ˜ ์ž…๋ ฅ

  2. ์Šคํƒ ์ดˆ๊ธฐํ™”

  3. ( ๋˜๋Š” ) ์ž…๋ ฅ๋ฐ›์„ ๋ณ€์ˆ˜ ์ƒ์„ฑ ํ›„ ์กฐ๊ฑด๋ฌธ ์ด์šฉ

๐Ÿ’ก์ฝ”๋“œ

T=int(input())
stack=[]

for j in T:
    s=input()
    for i in range s:
        if(i=='('):
            stack.append(i)
        else:
            if(len(stack)==0):
                print("False")
                break
            else:
                stack.append(i)

๐Ÿ’ก์‹œ๊ฐ„๋ณต์žก๋„

O(N)

๐Ÿ’กํ‹€๋ฆฐ ์ด์œ 

  1. '()))))))' : ์ด ๊ฒฝ์šฐ์˜ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•์ด ์ƒ๊ฐ๋‚˜์ง€ ์•Š์Œ.

  2. ๋ฌธ์ œ์˜ ์กฐ๊ฑด์„ ๊ตฌํ˜„ํ•˜๋Š” ๋Šฅ๋ ฅ์ด ๋–จ์–ด์ง„๋‹ค.

๐Ÿ’กํ‹€๋ฆฐ ๋ถ€๋ถ„ ์ˆ˜์ • or ๋‹ค๋ฅธ ํ’€์ด

T = int(input())
for i in range(T):
    stack = []
    a=input()
    for j in a:
        if j == '(':
            stack.append(j)
        elif j == ')':
            if stack:
                stack.pop()
            else: # ์Šคํƒ์— ๊ด„ํ˜ธ๊ฐ€ ์—†์„๊ฒฝ์šฐ NO
                print("NO")
                break
    else: # break๋ฌธ์œผ๋กœ ๋Š๊ธฐ์ง€ ์•Š๊ณ  ์ˆ˜ํ–‰๋์„๊ฒฝ์šฐ ์ˆ˜ํ–‰ํ•œ๋‹ค
        if not stack: # break๋ฌธ์œผ๋กœ ์•ˆ๋Š๊ธฐ๊ณ  ์Šคํƒ์ด ๋น„์–ด์žˆ๋‹ค๋ฉด ๊ด„ํ˜ธ๊ฐ€ ๋‹ค ๋งž๋Š”๊ฑฐ๋‹ค.
            print("YES")
        else: # break์•ˆ ๊ฑธ๋ ธ๋”๋ผ๋„ ์Šคํƒ์— ๊ด„ํ˜ธ๊ฐ€ ๋“ค์–ด์žˆ๋‹ค๋ฉด NO์ด๋‹ค.
            print("NO")

๐Ÿ’ก๋Š๋‚€์  or ๊ธฐ์–ต ํ•  ์ •๋ณด

  1. ์ฒ˜์Œ ์ฝ”ํ…Œ๋ฅผ ์ ‘ํ•˜๋‹ค๋ณด๋‹ˆ ์ ‘๊ทผํ•˜๋Š”๋ฐ ์–ด๋ ค์›€์„ ๋Š๋‚Œ. -> ๋ฌธ์ œ ๋งŽ์ด ์ ‘ํ•ด๋ณด๊ธฐ.

  2. ๊ฐœ๋…๋งŒ ๊ณต๋ถ€ํ•˜์ง€ ๋ง๊ณ  ๊ธฐ๋ณธ ๊ตฌํ˜„ํ•œ ์ฝ”๋“œ ๋งŽ์ด ์ ‘ํ•ด๋ณด๊ธฐ.

  3. break์—†์ด ์ •์ƒ์ ์œผ๋กœ ๋๋‚ฌ์„ ๋•Œ๋ฅผ else๋กœ ๊ตฌํ˜„.

ย