모두CBT

하노이탑 문제를 해결하기 위한 다음 알고리즘의 빈칸 ㉠, ㉡에 들어갈 … | [7급 국가직 알고리즘] 23년 1회차 기출문제 상세 페이지

1[7급 국가직 알고리즘] 23년 1회차
하노이탑 문제를 해결하기 위한 다음 알고리즘의 빈칸 ㉠, ㉡에 들어갈 코드가 옳게 짝지어진 것은? (단, n은 원판의 개수이다)
hanoi(n, from, temp, to){
if (n == 1)
move(from, to); // from에서 to로 이동
if (1 < n){
hanoi(n – 1, ( ㉠ ));
move(from, to); // from에서 to로 이동
hanoi(n – 1, ( ㉡ ));
}
}
㉠ ㉡
1
from, to, temp / from, temp, to
2
from, to, temp / temp, from, to
3
temp, from, to / from, to, temp
4
temp, from, to / from, temp, to
해설

㉠은 from, to, temp, ㉡은 temp, from, to이다.

매개변수 순서는 (출발, 경유, 도착)이다. 먼저 위쪽 n-1개를 to를 경유해 from에서 temp로 옮기므로 hanoi(n – 1, from, to, temp)이다.

가장 큰 원판을 from에서 to로 옮긴 뒤, temp에 있는 n-1개를 from을 경유해 to로 옮기므로 hanoi(n – 1, temp, from, to)이다.

  • ㉡을 from, temp, to로 둔 조합은 원판을 옮겨 둔 temp가 아니라 이미 비운 from에서 다시 출발하므로 n-1개가 to로 가지 않는다.
  • ㉠을 temp, from, to, ㉡을 from, to, temp로 둔 조합은 첫 호출이 원판이 없는 temp에서 출발하게 되어 위쪽 원판을 치울 수 없다.
  • ㉠을 temp, from, to, ㉡을 from, temp, to로 둔 조합은 두 재귀 호출의 출발 기둥이 모두 잘못되었다.

오류나 개정된 내용이 보이면 알려주세요

이어서 풀어보기

[7급 국가직 알고리즘] 23년 1회차 25문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요7급 국가직 알고리즘 기출문제 암기장 전체 보기