반응형
알고리즘 중 재귀의 대표적인 문제 하노이의 탑 문제를 풀어보았다.
문제 링크 : https://www.acmicpc.net/problem/11729
풀이
import java.util.Scanner;
/**
* 첫째 줄에 옮긴 횟수 K를 출력한다.
* 두 번째 줄부터 수행 과정을 출력한다.
*/
public class Main{
static StringBuilder sb = new StringBuilder();
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int result = hanoi(n, 1, 3, 2);
System.out.println(result);
System.out.println(sb);
}
public static int hanoi(int n, int from, int to, int temp){
if(n == 0){
return 0;
}
int count = 0;
count += hanoi(n-1, from, temp, to);
sb.append(from + " " + to + "\n");
count++;
count += hanoi(n-1, temp, to, from);
return count;
}
}
반응형
'자료구조 & 알고리즘' 카테고리의 다른 글
[백준] 1991 트리 순회 Java 풀이 (0) | 2023.08.28 |
---|---|
[자료구조] Tree 순회 방법 - 전위/중위/후위 순회 & Java 예시 코드 (0) | 2023.08.06 |
[Algorithm] Big-O 표기법이란(+ 시간 복잡도, 공간 복잡도) (0) | 2023.06.13 |
[자료구조] 해시 테이블(Hash Table) 자료구조 알아보기 & Java 예제 코드 (0) | 2023.06.11 |
[자료구조] 트리(Tree) 자료구조 알아보기 & Java 예제 코드 (0) | 2023.06.10 |