void go(int here){
if(here == 0) return;
printf("%d ", here);
if(here % 3 == 0 && dp[here] == (dp[here / 3] + 1)) go(here / 3);
if(here % 2 == 0 && dp[here] == (dp[here / 2] + 1))go(here / 2);
if((here - 1 >= 0) && (dp[here] == (dp[here - 1] + 1))) go(here - 1);
return;
}
왜 이렇게 하면 안되나요?