스택 (3) 썸네일형 리스트형 [문제풀이] Stack - 균형잡힌 세상 1차 시도 while True: input_data = input() if input_data == '.': break input_data = input_data.replace(' ', "") stack = [] for character in input_data: if character == '(' or character == '[': stack.append(character) elif character == ')': if len(stack) != 0: last = stack.pop() if last != '(': print("no") stack = None break else: print("no") stack = None break elif character == ']': if len(stack) !=.. [문제풀이] Stack - 괄호 1차 시도 n = int(input()) for idx in range(n): line = input() stack = [] for character in line: if character == '(': stack.append(character) elif character == ')': if len(stack) != 0: stack.pop() else: print("NO") stack = None break if stack is not None: if len(stack) == 0: print("YES") else: print("NO") 어렵지 않은 문제였다. [알고리즘] Stack Stack Stack은 선형 자료구조이며 가장 기초적이고 중요한 개념이다. 선형 자료구조란 '자료가 일렬로 존재하는 구조'를 의미한다. 예를들면 stack, queue, linked list 등 이다. stack에서 꼭 알아야 할 것은 바로 LIFO이다. LIFO는 Last in First out이며 '가장 마지막에 들어온 값이 가장 먼저 나간다는 뜻'을 가진다. 즉 데이터가 삽입되는 구멍과 삭제되는 구멍이 동일하다고 이해하면 되겠다. 아래 그림을 보면 좀더 쉽게 이해할 수 있다. 간단하게 예를 들면, 상자 안에 책을 눕혀서 국어책-수학책-영어책 순으로 넣는다면 뺄때는 영어책-수학책-국어책 순으로 빼게 될 것이다. 상자를 부시지 않는 이상 국어책을 빼기 전까지는 수학책 영어책을 빼낼 수 없다 (어떻게서든.. 이전 1 다음