백준 11729번 하노이 탑 이동 순서
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | #include <iostream> #include <queue> #include<stack> #include <cmath> #include <cstring> //memset using namespace std; vector<pair<int, int > > v; void Hanoi(int num, int from, int by, int to) { if (num == 1) v.push_back({ from,to }); else { Hanoi(num - 1, from, to, by); v.push_back({ from,to }); Hanoi(num - 1, by, from, to); } } int main(void){ ios_base::sync_with_stdio(0); cin.tie(0); int n; cin >> n; Hanoi(n, 1, 2, 3); cout << v.size()<<"\n"; for (int i = 0; i < v.size(); i++) { cout << v[i].first << " " << v[i].second << "\n"; } return 0; } | cs |
출처:https://www.acmicpc.net/problem/11729
오랜만에 알고리즘문제 풀었습니다.
간단한 문제.
'알고리즘 > BAEKJOON' 카테고리의 다른 글
| 백준 2805번 나무자르기 (0) | 2019.09.15 |
|---|---|
| 백준 11659번 구간합 구하기4 (0) | 2019.09.15 |
| 백준 14003번 가장 긴 증가하는 부분 수열 5 (0) | 2019.06.30 |
| 백준 2580번 스도쿠 (0) | 2019.06.30 |
| 백준 2517번 달리기 (0) | 2019.05.24 |