Home๊ธฐ์ˆ  & ์ฝ”๋”ฉ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๐Ÿ”„ ๋ฐฑ์ค€ 9012๋ฒˆ ๊ด„ํ˜ธ ๋ฌธ์ œ ํ’€์ด

๐Ÿ”„ ๋ฐฑ์ค€ 9012๋ฒˆ ๊ด„ํ˜ธ ๋ฌธ์ œ ํ’€์ด

๐Ÿ”„ ๋ฐฑ์ค€ 9012๋ฒˆ ๊ด„ํ˜ธ ๋ฌธ์ œ ํ’€์ด

1. ๐Ÿ› ๏ธ ๋ฐฑ์ค€ ์˜จ๋ผ์ธ ์ €์ง€ ํ•™์Šต ํ™˜๊ฒฝ ์„ค์ •

1.1. ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ถ„๋ฅ˜ ์ˆจ๊ธฐ๊ธฐ

  • ๋ฐฑ์ค€ ๋ฌธ์ œ ํŽ˜์ด์ง€ ํ•˜๋‹จ์— ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ถ„๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋˜์–ด ์žˆ๋‹ค.

  • ์ด๋Š” ๋ฌธ์ œ ํ’€์ด์— ๋Œ€ํ•œ ์Šคํฌ์ผ๋Ÿฌ๊ฐ€ ๋  ์ˆ˜ ์žˆ์–ด ํ•™์Šต ํšจ๊ณผ๋ฅผ ์ €ํ•˜์‹œํ‚จ๋‹ค.

  • ์„ค์ • ๋ณ€๊ฒฝ ๋ฐฉ๋ฒ•:

2. ๐Ÿ“ ๋ฐฑ์ค€ 9012๋ฒˆ ๊ด„ํ˜ธ ๋ฌธ์ œ ๊ฐœ์š”

2.1. ๋ฌธ์ œ ํŠน์„ฑ

  • ๊ด„ํ˜ธ ๋ฌธ์ž์—ด(PS)์ด ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด(VPS)์ธ์ง€ ํŒ๋‹จํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

  • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋กœ ๊ตฌ์„ฑ๋˜์—ˆ๋‹ค.

  • ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋งˆ๋‹ค YES ๋˜๋Š” NO๋ฅผ ์ถœ๋ ฅํ•ด์•ผ ํ•œ๋‹ค.

2.2. VPS(Valid PS) ์ •์˜

  • ํ•œ ์Œ์˜ ๊ด„ํ˜ธ ๊ธฐํ˜ธ๋กœ ๋œ “( )” ๋ฌธ์ž์—ด์€ ๊ธฐ๋ณธ VPS์ด๋‹ค.

  • x๊ฐ€ VPS๋ผ๋ฉด “(x)”๋„ VPS์ด๋‹ค.

  • ๋‘ VPS x์™€ y๋ฅผ ์ ‘ํ•ฉ์‹œํ‚จ xy๋„ VPS์ด๋‹ค.

  • ์˜ˆ์‹œ: “(())()”์™€ “((()))”๋Š” VPS์ด๋‹ค.

  • ๋ฐ˜๋ก€: “(()(“, “(())()))”, “(()”๋Š” VPS๊ฐ€ ์•„๋‹ˆ๋‹ค.

3. ๐Ÿ’ก ๋ฌธ์ œ ์ ‘๊ทผ ๋ฐฉ๋ฒ•

3.1. ์Šคํƒ ์ž๋ฃŒ๊ตฌ์กฐ ํ™œ์šฉ

  • ๊ด„ํ˜ธ ๋งค์นญ ๋ฌธ์ œ๋Š” ์Šคํƒ์„ ์ด์šฉํ•˜๋Š” ์ „ํ˜•์ ์ธ ๋ฌธ์ œ์ด๋‹ค.

  • ์—ฌ๋Š” ๊ด„ํ˜ธ์™€ ๋‹ซ๋Š” ๊ด„ํ˜ธ์˜ ๋งค์นญ ๊ด€๊ณ„๊ฐ€ ํ›„์ž…์„ ์ถœ(LIFO) ๋ฐฉ์‹์œผ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค.

  • ๊ด„ํ˜ธ ์Œ ๋งค์นญ ์˜ˆ์‹œ:

text๊ด„ํ˜ธ ๋งค์นญ ์ˆœ์„œ:
(1 (2 (3 )3 )2 )1

4. ๐Ÿงฎ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฌํ˜„

4.1. ํ’€์ด ๋กœ์ง

  • ์—ฌ๋Š” ๊ด„ํ˜ธ(‘(‘)๊ฐ€ ๋‚˜์˜ค๋ฉด ์Šคํƒ์— pushํ•œ๋‹ค.

  • ๋‹ซ๋Š” ๊ด„ํ˜ธ(‘)’)๊ฐ€ ๋‚˜์˜ค๋ฉด:

  • ๋ชจ๋“  ์ฒ˜๋ฆฌ๊ฐ€ ๋๋‚œ ํ›„:

4.2. ํŒŒ์ด์ฌ ์ฝ”๋“œ ๊ตฌํ˜„

pythonT = int(input())
for _ in range(T):
s = input()
stack = []
is_vps = True

for ch in s:
    if ch == '(':
        stack.append(ch)
    else:  # ch == ')'
        if stack:  # ์Šคํƒ์ด ๋น„์–ด์žˆ์ง€ ์•Š์œผ๋ฉด
            stack.pop()
        else:  # ์Šคํƒ์ด ๋น„์–ด์žˆ์œผ๋ฉด
            is_vps = False
            break

if stack:  # ์Šคํƒ์— ๊ด„ํ˜ธ๊ฐ€ ๋‚จ์•„์žˆ์œผ๋ฉด
    is_vps = False

print("YES" if is_vps else "NO")

5. ๐Ÿงช ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ๋ถ„์„

5.1. ์ฒซ ๋ฒˆ์งธ ํ…Œ์ŠคํŠธ ์„ธํŠธ

โ€“ ์ž…๋ ฅ: (())()), (((()())(), (()())((())), ((()()(()))(((())))(), ()()()()(()()())(), (()((())()(

โ€“ ์ถœ๋ ฅ: NO, NO, YES, NO, YES, NO

5.2. ๋‘ ๋ฒˆ์งธ ํ…Œ์ŠคํŠธ ์„ธํŠธ

โ€“ ์ž…๋ ฅ: ((, )), ())(()

โ€“ ์ถœ๋ ฅ: NO, NO, NO

5.3. ์˜ˆ์™ธ ์ผ€์ด์Šค ๋ถ„์„

  • ์—ฌ๋Š” ๊ด„ํ˜ธ๋งŒ ์žˆ๋Š” ๊ฒฝ์šฐ: ์Šคํƒ์ด ๋น„์–ด์žˆ์ง€ ์•Š์•„ NO

  • ๋‹ซ๋Š” ๊ด„ํ˜ธ๋งŒ ์žˆ๋Š” ๊ฒฝ์šฐ: ๋น„์–ด์žˆ๋Š” ์Šคํƒ์—์„œ pop ์‹œ๋„ํ•˜์—ฌ NO

  • ๊ด„ํ˜ธ ์Œ์ด ๋งž์ง€ ์•Š๋Š” ๊ฒฝ์šฐ: ์ฒ˜๋ฆฌ ๊ณผ์ •์—์„œ ์˜ค๋ฅ˜ ๋ฐœ์ƒํ•˜์—ฌ NO

6. ๐Ÿ“Š ๊ฒฐ๊ณผ ๋ฐ ์ •๋ฆฌ

6.1. ๋ฌธ์ œ ํ•ด๊ฒฐ ์š”์•ฝ

  • ๊ด„ํ˜ธ ๋ฌธ์ œ๋Š” ์Šคํƒ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํšจ์œจ์ ์œผ๋กœ ํ•ด๊ฒฐํ•˜์˜€๋‹ค.

  • ์‹œ๊ฐ„ ๋ณต์žก๋„: O(n) (n์€ ๋ฌธ์ž์—ด ๊ธธ์ด)

  • ๊ณต๊ฐ„ ๋ณต์žก๋„: O(n) (์ตœ์•…์˜ ๊ฒฝ์šฐ ๋ชจ๋“  ๊ด„ํ˜ธ๋ฅผ ์Šคํƒ์— ์ €์žฅ)

6.2. ํ•ต์‹ฌ ํ•™์Šต ํฌ์ธํŠธ

  • ๊ด„ํ˜ธ ๋งค์นญ ๋ฌธ์ œ๋Š” ์Šคํƒ์„ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€ํ‘œ์ ์ธ ์˜ˆ์‹œ์ด๋‹ค.

  • ์Šคํƒ์˜ LIFO ํŠน์„ฑ์ด ๊ด„ํ˜ธ ์Œ ๋งค์นญ์— ์ ํ•ฉํ•˜๋‹ค.

  • ๋ฌธ์ œ๋ฅผ ํ’€ ๋•Œ ์˜ˆ์™ธ ์ผ€์ด์Šค ์ฒ˜๋ฆฌ๊ฐ€ ์ค‘์š”ํ•˜๋‹ค.

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

- Advertisment -

Most Popular

Recent Comments