
정답
㉡ 실행 횟수: 1회. (row=3) 출력:
**0**
*123*
45678
㉡ 제거 시 출력(입력 3):
**0**
*123*
45678
㉠, ㉢ 제거 시 출력(입력 3):
0
123
45678
출제 의도
중첩 반복문에서 반복 횟수와 출력 형식이 어떻게 결정되는지, 변수 n의 증가와 조건문에 의한 초기화가 몇 번 발생하는지, 그리고 특정 반복문 블록을 제거했을 때 출력 패턴이 어떻게 변하는지를 평가한다.
풀이 과정
각 줄 i에서 가운데 숫자는 \(2i+1\)개 출력되고, 전체 줄 수는 row이므로 전체 숫자 출력 개수는 \(\sum_{i=0}^{\text{row}-1}(2i+1)\)이다. 숫자를 출력할 때마다 \(n\)이 1씩 증가하고, \(n\ge 10\)이 되면 ㉡에서 \(n=0\)으로 초기화된다.
$$ \sum_{i=0}^{3}(2i+1)=1+3+5+7=16 $$
row=4에서 숫자는 총 16번 출력된다. \(n\)은 0에서 시작하여 10번째 출력 직후 \(n\)이 10이 되므로(즉, 0~9를 출력한 직후) 한 번만 ㉡이 실행되어 \(n\)이 0으로 초기화된다. 16번 출력 동안 두 번째로 10에 도달하지는 못하므로 ㉡ 실행 횟수는 1회이다.
row=3일 때는 각 줄의 총 너비가 \(2\cdot 3-1=5\)이고, i번째 줄의 앞/뒤 별(*) 개수는 각각 \(3-i-1\)개씩이다. 숫자는 연속으로 출력되며, 처음 \(n=0\)부터 순서대로 증가한다.
따라서 입력이 3이면 출력은 다음과 같다.
**0**
*123*
45678
㉡을 제거해도 입력이 3인 경우에는 출력되는 숫자가 0~8까지만이므로(10 이상으로 가지 않음) 초기화가 필요 없고 출력 결과는 동일하다.
반면 ㉠(앞쪽 별 출력)과 ㉢(뒤쪽 별 출력)을 모두 제거하면 별이 전혀 출력되지 않고 숫자만 줄별로 출력된다. 입력이 3이면 다음과 같다.
0
123
45678
<풀이가 부정확할 수 있으니 반드시 교차검증 확인 바랍니다.>