반응형
문제
해설
최소 횟수: 2^N-1
코드
#include<iostream>
#include<cmath>
using namespace std;
void hanoi(int n, int start, int mid, int end) {
if (n == 1) cout << start << " " << end << '\n';
else {
hanoi(n - 1, start, end, mid); // n-1 개의 원반을 start에서 end로 옮긴다
cout << start << " " << end << '\n';
hanoi(n - 1, mid, start, end); // n-1 개의 원반을 mid에서 end로 옮긴다.
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(0), cout.tie(0);
int n;
cin >> n;
cout << (int)pow(2,n)-1<<'\n'; //pow() 실수형 반환 -> 정수형 변환
hanoi(n, 1, 2, 3);
return 0;
}
반응형
'Development > Algorithm' 카테고리의 다른 글
[BOJ] 3085. 사탕 게임 (0) | 2020.10.06 |
---|---|
[BOJ] 2583. 영역 구하기 (0) | 2020.10.06 |
[BOJ] 2606. 바이러스 (0) | 2020.10.04 |
[BOJ] 10809. 알파벳 찾기 (0) | 2020.10.03 |
[BOJ] 2966. 찍기 (0) | 2020.10.02 |