stack

    [백준 파이썬] #10799. 쇠막대기

    풀기 전 생각해보기😮 stack 문항 각각의 경우를 따져서 풀 수 있다 풀이🛫 # 스택 # 모든 경우대로 조건문을 나열 arr = list(input()) stack = [] cnt = 0 for i in range(len(arr)): if len(stack) == 0 and arr[i] == '(': # stack이 아직 만들어지지 않았을 경우 stack.append('(') else: # stack이 존재할 때 # 이전에 들어온 값과 현재 입력되는 값을 비교 # 모든 경우의 수는 4가지 밖에 되지 않음 if arr[i-1] == '(' and arr[i] == '(': # case1 stack.append('(') elif arr[i-1] == '(' and arr[i] == ')': # case2 ..

    [백준 파이썬] #2493. 탑

    풀기 전 생각해보기😮 stack 문제에 해당 풀이🛫 N = int(input()) # 500,000 이하 -> 완전탐색으로 구현하면 시간초과 발생 우려 towers = list(map(int, input().split())) lst = [(0, 0)] # 초기 값으로 (0, 0)을 보유 ans_lst = [] # 정답 리스트 for i in range(len(towers)): # stack에 쌓여있는 마지막 높이보다 현재의 탑이 더 높을 경우 if lst[-1][0] 현재 탑보다 큰 높이가 나올 때까지 while lst[-1][0] < towers[i]: lst...

    [SWEA] #4866. 괄호 검사_파이썬

    풀기 전 생각해보기😮 stack 구조 활용하기 풀이🛫 T = int(input()) for t in range(T): text = input() stack = [] for i in text: if i == "{" or i == "(": stack.append(i) elif stack and i == "}" and stack[-1] == "{": stack.pop() elif stack and i == ")" and stack[-1] == "(": stack.pop() elif i == "}" or i == ")": stack.append(i) if stack: # stack의 길이가 0이 아님 : 오답 answer = 0 else: # stack의 길이가 0 : 정답 answer = 1 print(f"#..