시간제한초과 문제를 어떻게 해결해야할지 모르겠어요ㅠㅠ

shinsoomin Reply 7 years 33 weeks ago
#include<iostream> using namespace std; int a = 1; void hanoi_tower(int n, char from, char tmp, char to) { if (n == 1); else { hanoi_tower(n - 1, from, to, tmp); a++; hanoi_tower(n - 1, tmp, from, to); a++; } } int main() { int n; cin >> n; hanoi_tower(n, 'A', 'B', 'C'); cout << a; return 0; } 빌드하고 좀 기다리면 답이 뜨기는 하는데 여기서는 시간제한초과라고 떠요.. 저기서 어떻게 해결해야 하는 건지 모르겠어요ㅜㅜ
withcs1 Reply 7 years 33 weeks ago
와우 문제링크에 있는 코드를 이용해 직접 원판을 이동하라고 짜신건가요..? 멋지네요 근데 그 횟수만큼 연산이 진행되서 계산시간이 엄청 오래걸릴거에요 '원판이 n개 일 때, 2의n승 -1번의 이동' 을 이용하세요~