하노이탑: Difference between revisions

From CS Wiki
(ㅇ)
 
(ㅇ)
 
Line 1: Line 1:
출처 : [https://st-lab.tistory.com/96]
시간복잡도 : O(2^n)
 
출처 : [https://mysterlee.tistory.com/45]
 
// PSEUDO CODE FROM A TO B
 
void Hanoi(int N, int A, int TO, int B) {
 
if (N == 1) {
 
print(A->B);
 
return;
 
 
Hanoi(N - 1, A, B, TO);
 
print(A -> B);
 
Hanoi(N - 1, TO, A, B);
 


/*
/*
Line 45: Line 66:
}
}


 
출처 : [https://st-lab.tistory.com/96]
 
// PSEUDO CODE FROM A TO B
 
void Hanoi(int N, int A, int TO, int B) {
 
if (N == 1) {
 
print(A->B);
 
return;
 
 
Hanoi(N - 1, A, B, TO);
 
print(A -> B);
 
Hanoi(N - 1, TO, A, B);

Latest revision as of 06:42, 2 August 2023

시간복잡도 : O(2^n)

출처 : [1]

// PSEUDO CODE FROM A TO B

void Hanoi(int N, int A, int TO, int B) {

if (N == 1) {

print(A->B);

return;

}

Hanoi(N - 1, A, B, TO);

print(A -> B);

Hanoi(N - 1, TO, A, B);


/*

모르면 외우자...

N : 원판의 개수

A : 출발지

B : 옮기기 위해 이동해야 장소

C : 목적지

*/

void Hanoi(int N, int A, int B, int C) {

// 이동할 원반의 수가 1개

if (N == 1) {

print(A + " " + C + "\n");

return;

}

// A -> B(N-1개)

Hanoi(N - 1, A, C, B);

   

// A->C(1개)

print(A + " " + C + "\n");

   

// B->C(N-1개)

Hanoi(N - 1, B, A, C);

}

출처 : [2]