백준11729

    [백준,BOJ 11729] 하노이 탑 이동 순서(JAVA 구현, 재풀이)

    -내 생각 별 찍기 - 10 문제와 마찬가지로 이전에 풀어봤던 문제로, 당시에는 이해가 불가능해 그냥 공식처럼 외우고자 했었는데, 이번에는 그나마 그 때보다는 좀 더 이해할 수 있었다고 생각되는 문제이다.. -해법 우선 하노이탑의 조건은 탑의 가장 상단에 있는 작은 원판부터 움직일 수 밖에 없게 되어있다. 즉 원판에 번호를 붙혀 생각해본다면, 1번 원판을 우선으로 고려해야 하기 때문에 n이 몇이던지 작은 부분으로 쪼개기 위해 재귀함수를 사용해야 한다. n이 3일 때, 3을 움직일 수 없으므로 -> 2를 고려, 2도 움직일 수 없으므로 -> 1을 고려, 1이 가장 작은 원판이기에 1부터 시작한다. import java.util.Scanner; public class Main{ static int k = 0..

    [백준,BOJ 11729] 하노이 탑 이동 순서(JAVA 구현)

    -내 생각 하노이 탑의 경우 개념은 알겠는데, 재귀 호출의 늪에 빠져버려서 도저히 머릿속으로 상상이 어렵다.. 그래서 그냥 공식처럼 외우기로 했다.. -해법 하노이 탑을 해결하기 위해서 1번 타워에서 3번 타워로 옮기는 것이 기본으로 수행 알고리즘은, n-1개의 원판을 1->3->2 순으로 타워 롤 옮기고, 2->1->3 순으로 3번에 다시 쌓으면 된다고 한다. 그렇기 때문에 재귀 호출을 통해 인자만 변경하면서 전달해주면 된다. import java.util.*; public class Main { static int n,cnt=0; static StringBuilder sb = new StringBuilder(); static void hanoi(int n,int from,int by,int to) {..