

나름 이 문제의 핵심인 것 같아 가져온 문장이다.
“너무 깊숙히 들어가지 맙시다. 깊숙히 들어가는 건 컴퓨터가 알아서 해줄 거예요.”
규칙을 찾아보자
사진 속 5개 를 기준으로 보자면
.
.
.
*** 생략
원판 한개를 3번 장대로 옮기는게 목표이므로 그냥 3번 장대로 옮긴다.
이를 바탕으로 구현하면
import Foundation
func move(_ start:Int, _ dest:Int) { answer += "\(start) \(dest) \n"; count += 1 }
func Hanoi(_ n: Int, _ start: Int, _ by:Int, _ dest: Int) {
if(n == 1) { move(start,dest) }
else {
Hanoi(n-1,start,dest,by) // dest-start = 거쳐가는 원판 (목적지,출발지 원판을 제외한 나머지 원판)
move(start,dest)
Hanoi(n-1,by,start,dest)
}
}
let n = Int(String(readLine()!))!
var answer = ""
var count = 0
Hanoi(n,1,2,3)
print(count, answer, separator: "\n")