[알고리즘] 백준 - 11729 (하노이 탑 이동 순서) / 자바

배고픈메꾸리·2021년 1월 28일
0

알고리즘

목록 보기
6/128
import java.util.Scanner;

public class Main {
	static int count = 0;
	static StringBuilder a = new StringBuilder("");
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int start = 1;
		int notd = 2;
		int destination = 3;
		int n = sc.nextInt();
		hanoi(1,2,3,n);
		System.out.println(count);//  2^count -1
		System.out.println(a);
	}

public static void hanoi(int start ,int notd , int destination , int n) {
	
	count++;
	if(n == 1) {
		a.append(start + " " + destination+"\n");
	}else if(n>1) {
		int tempN = n - 1;
		hanoi(start, destination, notd, tempN);
		a.append(start + " " + destination + "\n");
		hanoi(notd, start, destination, tempN);
	}

 }
}

System.out.println 을 계속 찍어냈더니 시간초과가 뜸 => StringBuilder를 사용해서 해결

피드백 받고 수정했더니 엄청난 성능 향상

  • 원판이 1개인 경우

  • 원판이 2개인 경우

  • 원판이 N+1개인 경우

profile
FE 개발자가 되자

0개의 댓글