목록알고리즘/백준 (3)
잘 정리해보자
1. 스택이 비어있을 때 '}'를 만나면 '{'로 바꿔주는 연산을 한다. 2. 주어진 문자열의 모든 문자를 순회한 결과 스택에 '{'가 남아있는 갯수를 세어 반으로 나눈다. 그러면 '{'를 지우기 위해 필요한 '}'의 갯수가 나온다. python num = 1 while True : cnt = 0 line = input().rstrip() if line.startswith('-') : break stack = []; flag = True line_list = list(line) for txt in line_list : if not(stack) and txt == '}' : cnt += 1 stack.append('{') elif txt == '}' : stack.pop() elif txt == '{' :..
pytnon while True : line = input().rstrip() if line == '.' : break stack = []; flag = True line_list = list(line) for txt in line_list : if txt == '(' or txt =='[' : stack.append(txt) elif txt == ']' : if stack and stack[-1] == '[' : stack.pop() else : flag = False break elif txt == ')' : if stack and stack[-1] == '(' : stack.pop() else : flag = False break print('yes' if flag and not(stack) els..
stack : LIFO (Last In First Out) 구조 python T = int(input()) for t in range(T) : line = list(input()) stack = []; flag = True for gual in line : if gual == '(' : stack.append(gual) elif not(stack) and gual == ')' : flag = False break elif gual == ')' : stack.pop() if len(stack) == 0 and flag == True: print('YES') else : print('NO') 문제 : www.acmicpc.net/problem/9012