반응형
[자료구조] 재귀 (recursion)
CSE/자료구조 (data structure)2022. 9. 24. 00:00[자료구조] 재귀 (recursion)

재귀란? 어떤 알고리즘이나 함수가 자기 자신을 호출하여 문제를 해결하는 프로그래밍 기법입니다. 재귀 함수를 선언할 때 선언한 함수 자신을 호출하는 것입니다. 그렇게 되면 재귀 함수를 한 번 만 실행해도 함수 자신을 호출하므로 또 다시 함수가 실행되고.. 를 계속 반복하는 것이 바로 재귀(recursion)입니다. 재귀의 대표적인 예시가 바로 팩토리얼(factorial) 함수인데, 코드로 살펴봅시다. int factorial(n) { if(n to (from은 경유)로 옮김 hanoi(via, from, to, n - 1); } } 응용: [백준 11729] 하노이 탑 이동 순서 이를 응용하여 아래와 같은 문제를 풀 수 있습니다. https://www.acmicpc.net/problem/11729 1172..

[백준 11729] 하노이 탑 이동 순서 (C/C++)
CSE/알고리즘 (algorithm)2022. 9. 23. 23:33[백준 11729] 하노이 탑 이동 순서 (C/C++)

Problem https://www.acmicpc.net/problem/11729 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net Comment 이 문제의 핵심은 두 가지입니다. 재귀 함수를 이용해 하노이의 탑 계산의 조건에 맞게 적절한 값 도출 원판 이동 횟수 계산 이 문제에서는 아래의 조건에 맞게 원판을 옮겨야 합니다. 한 번에 하나의 원판만 옮길 수 있음 맨 위에 있는 원판만 옮길 수 있음 크기가 작은 원판 위에 큰 원판이 쌓일 수 없음 중간의 막대를 임시적으로 이용할 수 있으나 위의 조건들을..

728x90
반응형
image