본문 바로가기
아기 개발자/백준 문제풀이

[BOJ_JAVA] 백준 11729번 : 하노이 탑 이동 순서 @달깅

by 달깅 2019. 11. 3.

https://www.acmicpc.net/problem/11729

이거 일단 문제가 카운트 된 숫자를 맨 위에 써야한다는 건데.....

맨 밑도 아니고 맨 위라고..?

어떻게 해야하지..?ㅎㅎㅎ 함수를 두개 만들어야 하나?

 

 

그래서 구글링 해보니까 스트링빌더를 써야한다고 한다!!

세상엔 정말 똑똑한 사람들이 많아~~

Stringbuilder 를 써서 하나의 스트링에 실행결과를 기록해둔다음 카운트를 출력하고 마지막에 실행 순서를 출력하면 되는 것.. 진짜 센세이션이다~

그래서 처음으로 스트링 빌더도 써봤다!

 

import java.util.*;

public class Main {
    private static int count=0;
    static StringBuilder sb=new StringBuilder();
    
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int num=sc.nextInt();
        sc.close();
        int result;

        result=hanoi(num, 1, 3, 2);
        System.out.println(result);
        System.out.println(sb);
    }

    public static int hanoi(int num, int start, int end, int mid) {
        if (num==1) {
            sb.append(start+" "+end+"\n");
            count++;
        } else {
            hanoi(num-1, start, mid, end);
            sb.append(start+" "+end+"\n");
            count++;
            hanoi(num-1, mid, end, start);
        }
        return count;
    }

}

 

처음에 코딩 배우면서 보고 띠용? 했던 하노이 탑..

이제는 외워버린건지 그냥 보고 바로 풀 수 있게 된 재귀 대표문제가 되었다..

얼른 다른 문제도 많이 풀어서 빨리 빨리 해낼 수 있었으면 좋겠다~~~

댓글