본문 바로가기

C3

[알고리즘] 미로찾기 알고리즘 - 재귀함수 미로찾기알고리즘 - 재귀함수 [미로 표현] - 아래와 같은 미로가 있다.- 녹색은 숲으로 막혀있고 오직 흰색 길을 통해서만 나갈 수 있다.- 숲으로 들어가면 야생 동물들에게 잡하먹히기에 갈 수가 없다. 위와 같은 규칙이 있다고 할 때 미로는 아래 사진과 같이 생겼을 것이고 이를 2차원 배열로 바꿔서 풀어보면[9][10]의 배열이기 때문에 다음과 같이 나타낼 수 있습니다. - 1은 갈 수 없는 길, 0은 갈 수 있는 길- 시작은 [1][0], 출구는 [8][4] 1234567891011121314151617181920212223 int[][] arr = { {1,1,1,1,1,1,1,1,1,1}, {0,0,0,0,0,0,1,1,1,1}, {1,1,1,1,1,0,0,0,0,1}, {1,1,1,1,1,0,1,.. 2017. 12. 17.
[C++ / JAVA] Factorial 재귀함수로 구현하기 안녕하세요.C++을 새롭게 공부를 하게 되면서 기존에 했던 알고리즘을 다시 작성하고 있습니다. 이를 포스팅 하려고 합니다. 필요상 말을 편하게 쓰도록 하겠습니다. 재귀함수를 이용해서 팩토리얼 연산을 하는 방법을 알아보도록 하자.재귀는 자기 자신을 계속적으로 호출하는 방법이다. 팩토리얼 연산은 다음과 같다.3! (3 팩토리얼) = 3 * 2 * 1 = 6 이러한 식으로 연산을 하는 것을 팩토리얼이라고한다. 연산을 보면 N이 1씩 줄어드는 것을 알 수 있다.이를 이용해서 재귀함수를 구현한다. 12345678910111213141516171819202122#include using namespace std; int Factorial(int n){ if (n == 1){ return 1; } return n *.. 2017. 1. 3.
[C / JAVA] 하노이탑 알고리즘 구현하기 하노이탑은 재귀호출을 이용한 가장 대표적인 예입니다. 이렇게 세개의 기둥이 있고 두가지의 조건을 만족시키면서 다른 기둥으로 원판을 옮기는 게임입니다.1. 한 번에 하나의 원판만 옮길 수 있다.2. 큰 원판이 작은 원판 위에 올 수 없다. n개의 원판이 있으면 2n -1의 이동으로 원판을 모두 옮길 수 있습니다. 알고리즘- 기둥1에 있는 n개의 원판을 기둥2를 이용하여 기둥3으로 옮기는 알고리즘(편의상 기둥 3개를 기둥1, 기둥2, 기둥3이라고 하겠습니다) 1. 기둥1에서 n-1개의 원판을 기둥3를 이용하여 기둥2으로 옮긴다.2. 기둥1에서 남은1개의 원판을 기둥3으로 옮긴다.3. 기둥2에서 n-1개의 원판을 기둥1을 이용하여 기둥3으로 옮긴다. 이걸 이제 코드상에서 구현을 해보도록 하죠.저 알고리즘을 그.. 2016. 12. 23.