마음만은 새내기

항상 초심을 잃지 않고 생활하겠습니다~!

스택 4

2019-1 자료구조 수업 노트 요약 (스택)

※ 스택이란? 후입 선출(LIFO : Last-In First-Out)의 입출력 형태를 갖는 자료구조가장 먼저 입력된 데이터가 가장 아래에 쌓이고, 가장 최근에 입력된 데이터가 가장 위에 쌓임입출력이 맨 위에서만 일어나므로, 스택의 중간에서 데이터를 넣거나 지울 수 없음 ※ 스택의 연산 create() : 새로운 스택 생성isEmpty(stack) : 스택이 비어있는지 검사isFull(stack) : 스택이 가득 찼는지 검사push(stack, data) : 스택의 맨 위에 data를 추가pop(stack) : 스택의 맨 위에 있는 요소를 삭제peek(stack) : 스택의 맨 위에 있는 요소를 반환 (삭제 X) ※ 스택의 사용 예시 함수 호출에서 복귀 주소 기억괄호 검사후위 표기식 변환 및 연산미로 탐..

2019 수업 노트 2019.05.16

BOJ 1918번(후위표기식) 문제 풀이

★ solved.ac 난이도 : G3 (2021년 12월 29일 기준) [문제 링크] 1918번: 후위 표기식 첫째 줄에 중위 표기식이 주어진다. 단 이 수식의 피연산자는 알파벳 대문자로 이루어지며 수식에서 한 번씩만 등장한다. 그리고 -A+B와 같이 -가 가장 앞에 오거나 AB와 같이 *가 생략되는 등의 www.acmicpc.net [문제 분석] 스택을 활용한 수식 변환 문제 [풀이] 이 문제는, (사람이 주로 사용하는) 중위 수식을 후위 수식으로 바꾸는 문제입니다. 이 문제도 자료구조를 예습하면서 접하게 된 문제인데요, 여기에서도 LIFO(후입선출)의 스택을 사용했습니다. 후위 수식은, 컴파일러가 주로 사용하는 수식 형태로, 연산자가 피연산자의 뒤에 나오는 수식입니다. 또한, 괄호 없이 우선순위를 반..

BOJ 9012번(괄호) 문제 풀이

★ solved.ac 난이도 : S4 (2021년 12월 29일 기준) [문제 링크] 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net [문제 분석] 스택을 활용한 괄호 검사 문제 [풀이] 이 문제는, 괄호의 모양이 올바른지를 검사하는 문제입니다. 자료구조를 예습하면서 접하게 된 문제인데요, 여기에서 LIFO(후입 선출)의 스택을 사용했습니다. 그 이유는, 가장 가까운 거리에 있는 괄호끼리 서로 쌍을 이루어야 하기 때문입니다. 괄호 검사의 조건을 알려드리자면, 조건 1. 여는 괄호..

BOJ 1874번(스택 수열) 문제 풀이

★ solved.ac 난이도 : S3 (2021년 12월 29일 기준) [문제 링크] 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net [문제 분석] 스택의 push 연산과 pop 연산을 응용한 깊이 있는(?) 문제 [풀이] 이 문제는, 스택의 push 연산과 pop 연산을 활용한 심화 문제라고 볼 수 있습니다. 1부터 n까지의 수들이 오름차 순으로 push가 된다고 합니다. push 연산을 이어가면서, 수열의 데이터와 비교하고,..