๐ 9012 | ๊ดํธ
https://www.acmicpc.net/problem/9012
๐ก Solution
Logic
1. ์คํ์ ๊ดํธ๋ฅผ ๋ฃ๋๋ค. ์ด ๋, ๋ค์ด์ค๋ ๊ดํธ๋ '('์ ')'๋ก ๋ ๊ฐ์ง ๊ฒฝ์ฐ์ด๋ค.
2. '('์ ๊ฒฝ์ฐ, ๊ทธ๋ฅ ์คํ์ ๋ฃ์ผ๋ฉด ๋๋ค.
3. ')'์ ๊ฒฝ์ฐ, VPS์ธ์ง ํ์ธํ๋ ์ค์ํ ์ฒ๋๊ฐ ๋๋ฏ๋ก ์ฌ๋ฌ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ณ ๋ คํด์ผํ๋ค.
โ ๋จผ์ ์คํ์ด ๋น์๋์ง ํ์ธ - ์คํ์ด ๋น์๋๋ฐ ๋ซ๋ ๊ดํธ๊ฐ ๋ค์ด์ค๋ฉด VPS ๊ฐ ์๋
โ ์คํ์ด ๋น์ง ์์๋ค๋ฉด ์คํ์ top ์์๊ฐ '('์ธ์ง ํ์ธ - ๋ง๋ค๋ฉด VPS์ด๋ฏ๋ก pop
โ ์์ ๊ฒฝ์ฐ๊ฐ ๋ชจ๋ ์๋๋ผ๋ฉด ๊ทธ๋ฅ ์คํ์ ๋ฃ๋๋ค.
4. ๋ง์ง๋ง์ผ๋ก ๋ชจ๋ ๊ดํธ ์ฐ์ฐ์ด ๋๋ ํ, ์คํ์ด ๋น์๋์ง ์๋์ง ํ์ธ์ด ํ์ํ๋ค. ๋น์ด์์ง ์๋ค๋ฉด VPS๊ฐ ์๋๋ค.
n = int(input())
def isVPS(ps) :
stack = list()
for i in range(len(ps)) :
if ps[i] == '(' :
stack.append(ps[i])
elif ps[i] == ')' :
if len(stack) == 0 :
print('NO')
return
elif stack[-1] == '(' :
stack.pop()
else :
stack.append(ps[i])
if len(stack) == 0 :
print('YES')
return
else :
print('NO')
return
while n :
ps = input().rstrip()
isVPS(ps)
n -= 1
โถ ๐ Note
โ ์คํ popํ๊ธฐ ์ ์ ๋น์ด์๋์ง๋ฅผ ํ์ธํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ค์ !
'์๊ณ ๋ฆฌ์ฆ ๐ฉ๐ปโ๐ป > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BAEKJOON] 1874 | ์คํ ์์ด (1) | 2024.11.12 |
---|---|
[BAEKJOON] 10845 | ํ (0) | 2024.11.12 |
[BAEKJOON] 10828 | ์คํ (0) | 2024.11.04 |
[BAEKJOON] 9093 | ๋จ์ด ๋ค์ง๊ธฐ (0) | 2024.11.04 |
[BAEKZOON] 2840. ํ์ด์ ๋ฐํด (1) | 2024.03.14 |