알고리즘/코딩 테스트 합격자 되기 C++ 편
[코테] 스택, 큐
거북이 코딩
2024. 10. 12. 16:38
스택
스택이란?
LIFO 구조 (Last In First Out), 혹은 FILO 구조라고 할 수도 있음
스택 문제의 단서
- 가장 최근에 들어온 원소를 알 수 있다.
- 가장 최근에 들어온 원소 순으로 나온다.
스택의 ADT
push() 스택의 맨 위에 원소를 추가한다.
pop() | 스택의 맨 위 원소를 제거한다. |
top() | 스택의 맨 위 원소를 반환한다. |
empty() | 스택이 비어있으면 참을 반환한다. |
size() | 스택의 크기를 반환한다. |
스택의 사용예시
- 함수 호출 관리
- 페이지 탐색
- 괄호 짝 맞추기
- DFS
- 백 트래킹
큐
큐란?
FIFO 구조 (First In First Out), 혹은 LILO 구조라고 할 수도 있음
큐 문제의 단서
- 들어온 순서대로 나갈 때 사용한다.
큐의 ADT
push() 큐의 맨 뒤에 원소를 추가한다.
pop() | 큐의 맨 앞 원소를 제거한다. |
front() | 큐의 맨 앞 원소를 반환한다. |
back() | 큐의 맨 뒤 원소를 반환한다. |
empty() | 큐가 비어있으면 참을 반환한다. |
size() | 큐의 크기를 반환한다. |
큐의 사용예시
- 줄 서기
- 요세푸스 문제
- BFS
스택과 큐를 사용한 문제 예시
백준 4963번 섬의 개수: DFS를 쓰기 위해 스택을 활용한 문제
[백준] 4963번 섬의 개수 - C++
섬의 개수 문제 이름을 클릭하면 문제 설명을 볼 수 있습니다. 이번 문제는 0과 1로 이루어진 지도에서 섬이 총 몇 개 있는지 개수를 맞추는 문제입니다. 8방향으로 한 방향이라도 이어져 있다면
blogofcreditj.tistory.com
백준 1966번 프린터 큐: BFS를 사용하여 프린터 큐를 구현하는 문제
Algorithm/Baekjoon/1966.cpp at main · Y0ngjun/Algorithm
Algorithm with C++. Contribute to Y0ngjun/Algorithm development by creating an account on GitHub.
github.com