우와아ㅏㅏㅏㅏㅏㅏㅏㅏㅏ 근데 뭔가..

spongbob9876 Reply 9 years 28 weeks ago
제 알고리즘이 약간 찜찜해서 그런데요(정당성 때문에) 시나리오 1 1~n-1 : a->b n : a->c 1~n-1 : b->c 시나리오 2 1~n-1 : a->b n : a->c 1~n-1 : b->a n : c->b 1~n-1 : a->b 이 두가지 있잖아요? 시나리오 2를 계산하기 위해서는 a->b와 b->a를 모두 알고 있어야 하는데.. 1~n-1이 최고 우선순위를 따라 움직이기 때문에 제 코드가 정당한 알고리즘이 되는 건가요? 뭔가 a->b와 b->a의 값이 항상 계산되는 것 같아서요 정당한 이유를 알 것 같으면서도 뭔가 헷갈리는데 이유 설명해주셔서 확신을 잡게 해주실 수 있을까요
pichulia Reply 9 years 28 weeks ago
뭐 알고리즘에 문제는 없어 보입니다. 지금 보시면 1~i에 대해 A에서 시작한 경우, B에서 시작한 경우, C에서 시작한 경우 모든 것에 대해 횟수를 세고계시기 때문에 당연히 n-1번째에 B->A 로 가는 횟수도 계산이 되있는 상태일 것입니다. 음....그리고 원반이 n게 있을 때 X에서 시작하면 Y로 도착한다는게 반드시 정해져 있기 때문에 (n이랑 X가 정해지면 Y도 정해지기 때문에), 예를 들어 b->a로 가는 경우의 수가 계산되지 않았다는 거는 n-1에 대해서 항상 b->c로 간다는 뜻이랑 똑같이 때문에 시나리오 2에 도달할 일이 없다는 뜻이랑 같습니다. 정당성에서도 문제가 없네요....
spongbob9876 Reply 9 years 28 weeks ago
올ㅋ