티스토리 뷰
package HanoiExample;
public class Hanoi {
public static void main(String[] args) {
hanotFun("A", "B", "C", 4);
}
public static void hanotFun(String start, String pass, String end, int num) {
//시작지점 start 지나가는 곳 pass 마지막 모이는 곳 end 4개를 옮기겠다
if(num == 1) {
//1혼자 남았을 때는 바로 끝으로 옮긴다
System.out.printf(num + ":%s -> %s\n", start, end);
} else {
hanotFun(start, end, pass, num -1);
System.out.printf(num + ":%s -> %s\n", start, end);
hanotFun(pass,start ,end ,num -1);
}
}
}
결과
num = 1일때 움직임이 일어나고 1이 아닐때는 같은 함수를 또 실행한다
그렇게 1이 나올 때 까지 들어갔다가 1을 만나면 1을 출력한다
else의 첫 함수가 참이 되고 2가 출력 된다 그러고 다시 1로 가서 위치가 바뀌면서 새로 출력된다
참이 될 때 까지 함수는 계속 안으로 들어가면서 실행이 되고
참이 되면 해당 함수를 빠져나오고 다음줄을 실행한다
재귀함수 꼭 기억하자
'개발일기' 카테고리의 다른 글
AWS 대상 그룹 Target Group 생성 (0) | 2023.03.30 |
---|---|
AWS 시작 템플릿 생성하기 (0) | 2023.03.29 |
[Python] 파이썬으로 소수 출력하기 (0) | 2023.02.10 |
Vue | Chart.js 를 활용하여 차트 넣기 (0) | 2023.02.03 |
JAVA | 배열 정렬하기 (0) | 2023.01.31 |