티스토리 뷰

반응형

문제의 저작권은 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(-1if 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 크기가 변경 될 때, 시간이 많이 든다.. 

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함