필자는 Stack과 Queue가 어떠한 상황에서 사용하면 될지에 대한 생각을 해 보았다.
Stack
-> 어떠한 문제를 풀기 위해서 가장 마지막의 데이터를 먼저 풀고 점진적으로 가장 처음의 데이
터를 풀어야 할 떄! 위와 같은 방법을 사용하기 위해서는, Stack과 같은 Last In First Out과 같은 구조로 Stack에 쌓여 있는
데이터들이 단방향으로 보관되어야 할 필요가 있다.
ex) 1. 재귀 함수(리프에서 시작하여 위로 올라오는 재귀함수)를 for문으로 고칠 떄!
2. DFS();
Queue
-> 어떠한 문제를 풀기 위해서 장 처음의 데이터를 먼저 풀고 점진적으로 가장 마지막의 데이터를 풀어야 할 떄! 위와 같은
방법을 사용하기 위해서는, Queue와 같은 First In First Out과 같은 구조로 Queue에 쌓여 있는 데이터들이 단방향으로 보
관되어야 할 필요가 있다.
ex)
1. 재귀 함수( 상위의 문제들을 먼저 풀고, 점진적으로 하위의 문제를 풀어 나가는 재귀 함수)를 반복문으로 구현을 할 때!
2. BFS( )
'알고리즘(アルゴリズム) > 자주 까먹는 알고리즘(よく忘れるアルゴリズム)' 카테고리의 다른 글
이진수를 이용하여 O(log n)으로 거듭 제곱 빠르게 계산하기 (2) | 2023.01.30 |
---|---|
조합론(Combination) == 이항 계수(binomial Coefficient) (0) | 2023.01.29 |
Quad Tree - 2D 공간을 트리로 표현 (0) | 2023.01.26 |
C++ - 2개 이상의 Delimiter를 사용한 Parsing Template (0) | 2023.01.24 |
Greedy (0) | 2023.01.04 |