0x05강
5강에서는 스택이 무엇인지 알아보고 구현하는 시간을 가진다.
생각 정리
스택은 다양한 응용 사례 존재
- 수식의 괄호쌍
- 전위/중위/후위 표기법
- DFS
- Flood Fill
# 정의와 성질
스택 : 한 쪽 끝에서만 빼거나 넣을 수 있는 자료구조
- LIFO (Last In First Out)
Restricted Structure
스택, 큐, 덱은 특정 위치에서만 넣거나 뺄 수 있는 제한이 걸려 있어서 Restricted Structure 라고도 함
- 배열을 이용해서 제일 상단이 아닌 나머지 원소들의 확인/변경이 가능하도록 기능을 만들 수는 있다
- 그러나, 그건 스택에서 제공하는 기능은 아니다
- 스택을 응용한 문제를 보면 결국 원소의 추가 / 원소의 제거 / 제일 상단 원소 확인 기능만을 필요로 함
# 기능과 구현
스택은 배열 / 연결리스트를 이용해 구현할 수 있으며, 배열을 이용하는게 더 쉽다
- 배열, 현재 위치를 가리키는 인덱스 2개만 필요
{13, 21, 30}
을 표현하기 위해dat[0]
,dat[1]
,dat[2]
에 숫자를 썼고pos
는 3이라는 값을 가짐- pos의 값이 곧 스택의 길이, 스택 내의 원소의 수를 의미
- 뭐 pos가 0보다 커야한다 이런건 일단 생략했음
- 어차피 나중에 값이 들어오면 바꿔치기 할거니까 추가적인 연산없이 그냥 pos만 이전 위치로 이동시켰음
# BOJ 10828 (sol)
- 너무 쉬워서 패스
# BOJ 10773 (sol)
|
|