스택 3

[알고리즘] 자료구조 기초 (스택, 큐, 재귀함수)

탐색이란? 탐색이란 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정을 의미한다. 대표적인 탐색 알고리즘으로 DFS와 BFS를 꼽을 수 있는데 이 둘을 이해하기 위해서는 기본 자려구조인 스택과 큐에 대한 이해가 되어야 한다. 자료구조란? 자료구조란 데이터를 표현하고 관리하고 처리하기 위한 구조를 의미한다. 그중 스택과 큐는 자료구조의 기초개념으로 다음의 두 핵심적인 함수로 구성된다. 삽입(push) : 데이터를 삽입한다. 삭제(pop) : 데이터를 삭제한다. 추가로 스택과 큐를 사용할 때에는 언더플로(underflow)와 오버플로(overflow)를 고려해야한다. 오버플로는 특정한 자료구조가 수용할 수 있는 데이터의 크기를 이미 가득 찬 상태에서 삽입 연산을 수행할 때 발생한다. 반면 특정한 자료구조에..

알고리즘/개념 2023.08.13

[baekjoon] 백준 1918번 : 후위 표기식 (by python 파이썬) 스택 stack

https://www.acmicpc.net/problem/1918 1918번: 후위 표기식 첫째 줄에 중위 표기식이 주어진다. 단 이 수식의 피연산자는 알파벳 대문자로 이루어지며 수식에서 한 번씩만 등장한다. 그리고 -A+B와 같이 -가 가장 앞에 오거나 AB와 같이 *가 생략되는 등의 www.acmicpc.net 정답 code # 후위 표기식 pn = input() stack = [] res = '' #결과값 저장 for p in pn: #알파벳일때, 결과값에 추가 if p.isalpha(): res += p else: # ( 일때 if p =='(': stack.append(p) # *, / 인경우 같은 우선순위인 *, / 가 있으면 결과값에 추가 elif p == '*' or p == '/': wh..

[baekjoon] 10828번 : 스택 (by python 파이썬)

https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net code import sys input = sys.stdin.readline n = int(input()) a = [] for _ in range(n): do = input().split() if do[0] == 'push': a.append(do[1]) elif do[0] == 'pop': if len(a) == 0: print(-1) else: print(a.pop()) el..