코테/백준

[백준/JAVA] 11729번: 하노이 탑 이동 순서

imname1am 2023. 3. 23. 15:57
반응형

🔺 문제

 

11729번: 하노이 탑 이동 순서

세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로

www.acmicpc.net

 

🔺 코드

import java.util.*;
import java.io.*;

public class Main {
    public static StringBuilder sb = new StringBuilder();
    
	public static void main(String[] args) throws IOException {
	    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int n = Integer.parseInt(br.readLine());
		
		sb.append((int) (Math.pow(2, n) - 1)).append("\n");
		
		Hanoi(n, 1, 2, 3);		
		System.out.println(sb);	
	}
	
	//                                 출발지   경유지  목적지
	public static void Hanoi(int n, int from, int via, int to) {
	    if(n == 1) {
	        sb.append(from + " " + to + "\n");
	        return;
	    }
	    	    
	    // 1) n-1개를 A→B로 이동
	    Hanoi(n-1, from, to, via);
	    
	    // 2) 1개를 A→C로 이동
	    sb.append(from + " " + to + "\n");
	    
	    // 3) n-1개를 B→C로 이동
	    Hanoi(n-1, via, from, to);
	}
}
✅ 해결 아이디어
- 규칙을 찾아 점화식 구하기!
- 최소 단위에 대한 조건!

복습해야지..ㅠ


🔺 다른 풀이들

 

[백준 알고리즘][자바] 11729번 : 하노이 탑 이동 순서

https://www.acmicpc.net/problem/11729 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승

hyunipad.tistory.com

비슷한데 cnt를 직접 구하신...

 


(참고)

- 풀이

 

[백준] 11729번 : 하노이 탑 이동 순서 - JAVA [자바]

www.acmicpc.net/problem/11729 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이

st-lab.tistory.com

 

하노이의 탑 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 하노이의 탑 하노이의 탑(Tower of Hanoi)은 퍼즐의 일종이다. 세 개의 기둥과 이 기둥에 꽂을 수 있는 크기가 다양한 원판들이 있고, 퍼즐을 시작하기 전에는 한 기

ko.wikipedia.org

 

반응형