본문 바로가기

알고리즘15

[알고리즘] 깊이우선탐색(DFS)과 너비우선탐색(BFS) [Algorithm] 깊이우선탐색(DFS)과 너비우선탐색(BFS) 깊이우선탐색(DFS)과 너비우선탐색(BFS)에 대한 개념을 공부하고, 구현을 정리한 내용입니다. velog.io 해당 블로그의 글이 깔끔하게 정리되어있어 그대로 가져왔습니다. 좀더 상세한 사항은 해당블로그를 참조. 깊이우선탐색(DFS / Depth First Search) 너비우선탐색(BFS / Breadth First Search) ▶ 해당 개념을 알기 위해서는 세 가지의 개념이 선행되어야 한다. 1) 먼저 자료구조 스택/큐 이해가 필요하다. 스택/큐에 대한 설명은 아래 링크에 따로 정리했다. 👉🏻 https://velog.io/@falling_star3/자료구조-스택Stack큐Queue덱Deque 2) 재귀함수의 호출과 리턴 과정에 대.. 2023. 4. 27.
[알고리즘] 빅오 표기법 (Big O notation) 알고리즘에서 복잡도를 판단하는 척도중 시간 복잡도와 관련이 있는 표기법 입니다. 빅오(Big O)표기법은 알고리즘의 최악의(최대소요시간)을 표현하는데 사용합니다. *추가 정보* 빅오와 관련하여 빅오메가(Big Ω) , 빅세타(Big θ)의 표현법도 있습니다. 빅오메가 표기법 : 알고리즘의 최고(최저소요시간)을 표현합니다. 빅세타 표기법 : 알고리즘의 평균소요시간을 표현합니다. 다시 본론으로 돌아와 빅오 표기법에 대하여 알아보도록 하겠습니다. 빅오 표기법의 특징 상수항 무시 : 알고리즘이 O(N+5)의 복잡도를 가졌다면 상수를 생략하여 O(N)으로 표기합니다. 계수도 무시 : 알고리즘이 O(3N)의 복잡도를 가졌다면 계수를 생략하여 O(N)으로 표기합니다. 최고차항 표기 : 알고리즘이 O(3N^3+2N^2.. 2023. 4. 26.
[알고리즘/C++]하노이탑알고리즘 재귀함수를 이용하는 하노이탑 알고리즘에 대해 공부하였다. 하노이탑 알고리즘은 재귀적인 방법을 이용해 구현할 수 있다. 하노이탑 문제의 규칙 세 개의 기둥이 있고, 첫 번째 기둥에는 크기가 다른 n개의 원판이 쌓여 있다. 각 원판은 크기가 다르며, 작은 원판이 큰 원판 위에 쌓일 수 있다. 한 번에 하나의 원판만 이동할 수 있으며, 큰 원판 위에 작은 원판이 있을 수 없다. 기존의 기둥에서 목표의 기둥에 처음과 같은 형태로 쌓는 것이 목표다. 자세하게 파악이 가능한 예시 이미지 는 아래쪽에.. 이미치 출처 : https://travelerfootprint.tistory.com/108 단순하게 이게 왜 재귀함수인가 몰랐으나.. 동영상을 찾아보고 공부해본결과 어찌저찌 납득이 되긴 했다.. *주의할점* 함수는 .. 2023. 4. 25.