
정답540 — 9×6×5×2×1의 결과입니다.
핵심 개념
재귀 함수의 호출 추적(recursion trace)
재귀 함수 문제는 종료 조건(base case)에서부터 거꾸로 값을 되돌려 올라가며 계산하는 것이 정확합니다. 이 함수는 n이 1 이하이면 1을 반환하고, n이 짝수이면 n*function(n-1), 홀수이면 n*function(n-3)을 반환합니다. 즉 짝/홀 여부에 따라 감소 폭이 1과 3으로 달라지므로 호출 경로를 순서대로 적어 두고, 가장 안쪽 호출부터 곱을 쌓아 올려야 실수가 없습니다.
선지별 해설
①60은 중간 단계인 function(6)의 값입니다. 최종 반환값은 여기에 9를 더 곱한 값이어야 하므로 답이 될 수 없습니다.
②84는 호출 경로에서 나오지 않는 값입니다. 9는 홀수라 function(8)이 아니라 function(6)을 호출한다는 점을 놓치면 나오는 오답입니다.
③function(2)=2×function(1)=2, function(5)=5×function(2)=10, function(6)=6×function(5)=60, function(9)=9×function(6)=540입니다. 따라서 540이 정답입니다.
④672는 짝수·홀수 분기를 뒤바꿔 계산했을 때 나오는 값으로, 실제 호출 순서(9→6→5→2→1)와 맞지 않습니다.

정답후위 순회는 G D H B F I E C A인데 선지는 F E I 순으로 잘못 적혀 있습니다.
핵심 개념
이진 트리의 순회(traversal) 4가지
이진 트리 순회는 루트를 언제 방문하느냐로 구분합니다. 전위는 루트→왼쪽→오른쪽, 중위는 왼쪽→루트→오른쪽, 후위는 왼쪽→오른쪽→루트 순이며, 레벨 순서는 큐를 이용해 같은 깊이의 노드를 왼쪽부터 차례로 방문합니다. 이 트리는 A의 왼쪽이 B(자식 G, H), 오른쪽이 C이고, H는 오른쪽 자식 D만, C는 자식 E를, E는 자식 F와 I를 가집니다. 자식이 하나뿐인 노드의 좌/우 위치를 정확히 보는 것이 관건입니다.
선지별 해설
①전위 순회는 A→B→G→H→D→C→E→F→I입니다. 루트를 먼저 방문하고 왼쪽 서브트리를 모두 끝낸 뒤 오른쪽으로 넘어가므로 선지와 일치합니다.
②중위 순회는 G B H D A C F E I입니다. H는 왼쪽 자식이 없어 H 다음에 D가 오고, C는 왼쪽 서브트리가 없어 C가 E 서브트리보다 먼저 나옵니다.
③후위 순회는 자식을 모두 방문한 뒤 부모를 방문하므로 E의 자식 F, I가 먼저 나와 G D H B F I E C A가 되어야 합니다. 선지처럼 F E I 순이 되면 부모 E가 자식 I보다 먼저 나오므로 후위 순회가 아닙니다.
④레벨 순서 순회는 A / B C / G H E / D F I 순이므로 A B C G H E D F I가 되어 선지와 일치합니다.