본문 바로가기

알고리즘/알고리즘 개념 정리

DFS

 

 

작성 중..


 

 

그래프: 여러 개체들이 연결 되어있는 자료 구조

 

DFS == 한놈만 끝까지 판다. 재귀 함수 사용, 모든 경우의 수를 확인

BFS == 여러개를 하나 씩 본다, Queue, LinkedList 사용, 순서가 보장 되어야 한다

 


DFS

 

 

 


 

 

BFS

 

 


 

 

재귀 함수

메모리에 쌓이는 방법

https://www.youtube.com/watch?v=yio6FyP1N2k

 

 

 

 

재귀함수는 스택에 쌓인다

3, 2, 1, 0 -> 재귀 함수 전 printf

 

종료는 역순으로 종료된다

0, 1, 2, 3 -> 재귀 함수 후 printf

 

반드시 종료를 넣어야 한다

 


조합 문제에서

https://www.youtube.com/watch?v=HYKpunR1Nto

 

 

Combination

n! / n-r 였나?

 

7P3 == 7*6*5 잖아
근데 순서가 있으니까
3개의 순서를 나눠주면 됨

7*6*5 / 3!

 

 


Permutation

n! 이었나?

 

단순하게 7P3 이면
7 * 6 * 5 를 하고 싶은거지

 

 

 


0! == 1
1! == 1



이 경우를 조심

6개 중에서 1개 뽑는 경우 6번

6개 중에서 아무것도 안뽑는 경우 1번

 

 


 

 


 

'알고리즘 > 알고리즘 개념 정리' 카테고리의 다른 글

최대공약수(유클리드 호제법)  (0) 2024.08.17
Greedy  (0) 2024.08.04
[java] Array  (0) 2021.09.27
[java] Math 클래스, String  (0) 2021.09.27
[java] stream  (0) 2021.09.27