본문 바로가기
반응형

재귀3

#05 재귀- 하노이탑 하노이 탑(Tower of Hanoi) 알고리즘 이해하기하노이 탑(Tower of Hanoi)은 수학적 퍼즐로, 세 개의 막대와 여러 개의 크기가 다른 원판으로 구성됩니다. 퍼즐의 목표는 한 막대에 쌓여 있는 원판들을 다른 막대로 옮기는 것입니다. 이 과정에서 다음 규칙을 준수해야 합니다:한 번에 하나의 원판만 옮길 수 있습니다.원판은 항상 큰 원판이 작은 원판 아래에 위치하도록 옮겨야 합니다.세 번째 막대를 이용하여 중간 과정을 거칠 수 있습니다.하노이 탑 알고리즘 구현하노이 탑 문제를 해결하기 위해 재귀 알고리즘을 사용합니다. 다음은 C 언어로 구현한 예제 코드입니다:#include void Hanoi(int num, char from, char by, char to) { if (num == 0.. 2024. 3. 27.
#04 재귀를 이용한 팩토리얼 계산 재귀 (Recursion)재귀(recursion)는 어떠한 것을 정의할 때 자기 자신을 참조하는 것을 뜻합니다. 컴퓨터 과학과 수학에서, 재귀는 함수가 자신의 정의에 의해 정의될 때의 개념을 가리킵니다.#include void count(int num) { printf("%d \\n", num); count(num - 1); } int main() { count(5); return 0; }위 count() 메서드처럼 자기 자신을 호출하는 것이 재귀입니다.재귀의 탈출 조건위 코드를 보면 무한히 호출됩니다. 탈출 조건을 줘서 무한 반복을 끊어내야 합니다.#include void count(int num) { if (num == 0) return; .. 2024. 3. 25.
#03 순차 탐색 알고리즘, 이진 탐색 알고리즘, 이진 탐색 재귀 순차 탐색(Linear Search)맨 앞에서부터 순서대로 탐색을 진행하는 알고리즘이기에 순차 탐색이라는 이름이 붙어있다.순차 탐색 알고리즘을 구현해보자. 배열 arr1237912212327idx0idx1idx2idx3idx4idx5idx6idx7idx8 위 배열에서 3을 찾아본다면 * 첫번째 시도1. idx0번이 3인지 확인↓        1237912212327idx0idx1idx2idx3idx4idx5idx6idx7idx8 * 두번째 시도1. idx1번이 3인지 확인 ↓       1237912212327idx0idx1idx2idx3idx4idx5idx6idx7idx8 * 세번째 시도1. idx2번이 3인지 확인  ↓      1237912212327idx0idx1idx2idx3idx4idx5idx.. 2024. 3. 25.
반응형