알고리즘/sw
4866. [파이썬 S/W 문제해결 기본] 4일차 - 괄호검사_python
HAN_PY
2020. 3. 28. 00:42
반응형
문제의 저작권은 SW Expert Academy에 있습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
def PUSH(stack, item):
stack.append(item)
def POP(stack):
return stack.pop(-1) if len(stack) else None
TC = int(input())
for tc in range(1,TC+1):
data = []
y = input()
sol = 1
for x in y:
if x == '(':
PUSH(data,x)
if x == '{':
PUSH(data,x)
if x == ')':
if POP(data) == '(':
continue
else:
sol = 0
break
if x == '}':
if POP(data) == '{':
continue
else:
sol = 0
break
if data :
sol = 0
# print(data)
print("#%d %d"%(tc, sol))
|
cs |
stack 개념에 나온 것 같이 PUSH랑 POP을 정의해서 푼 것이다.
사실 실전에서는 정의 같은거 안하고 append랑 pop()을 이용해서 분다.
stack은 리스트의 오른쪽으로 넣고 오른쪽으로 빼는거다..
나중에 되면 deque쓰지 stack은 잘 안 쓴다.
왜냐하면 python에서 list 크기가 변경 될 때, 시간이 많이 든다..
반응형