3-A. 아래로 이동하면서 숫자 채우기
아래로 이동하는 상황을 생각해봅시다. 숫자를 채워 넣은 후 아래로 이동할 수 있으면 반복해서 아래로 진행해야 합니다. 아래로 진행하는 것은 y 값이 증가하는 것이기 때문에 다음과 같이 작성할 수 있습니다.
while (true) {
triangle[y][x] = v++;
if (y + 1 == n || triangle[y + 1][x] != 0) break;
y += 1;
}
이 반복문에서 빠져나왔다는 것은 더 이상 아래로 진행할 수 없다는 의미입니다. 아래로 진행할 수 없다면 오른쪽으로 진행해야 하지만, 오른쪽으로도 진행할 수 없는 경우가 있습니다. 아래로 진행하는 것이 삼각형을 채우는 마지막 진행 방향이면 여기에서 숫자를 채우는 것을 멈추어야 합니다.
▲ 그림 3-11 마지막 방향이 아래로 향하는 경우