더북(TheBook)

다음은 ‘나선형’에 대한 이야기입니다. 주로 ‘달팽이집 모양’이라고 불리는 이 형태는, 원으로 돌아가면서 조금씩 그 중간을 향해 들어가는 모습을 의미합니다. 문제라면 나선형을 만들어야 할 배열은 만들 때 정삼각형이 깨졌기 때문에 그에 맞춰서 진행 방법을 변경해야 합니다. 지금까지의 과정을 전부 정리하면 다음과 같습니다.

• 밑변의 길이와 높이가 n인 삼각형

- n = 4라면 삼각형의 개수가 10개가 됩니다. 다르게 말하면 1 + 2 + 3 + 4 = 10으로, 1부터 n까지 모두 더한 숫자가 n인 삼각형을 구현할 때 필요한 배열의 개수가 된다는 의미이기도 합니다.

• 삼각형을 이동하는 방법

- 앞서 삼각형을 구현하기 위해 2차원 배열을 ‘왼쪽 정렬’한다고 했습니다. 문제에서 방향을 돌려가면서 배열을 채워야 하므로, 배열을 이동할 때의 방향을 직접 정의해야 할 필요가 있습니다.

- 반시계 나선형이므로 ‘처음에는 밑으로, 그 다음은 오른쪽으로, 그 다음은 왼쪽 대각선 위쪽으로, 그 다음은 다시 밑으로…’ 순으로 방향이 정의되어야 합니다.

- 좌표로 나타내면 y + 1 → x + 1 → x – 1, y – 1 → y + 1…이 됩니다.

• 방향 회전 기준

- 다음 숫자를 넣을 배열이 없거나, 만약 다른 값이 이미 할당되어 있다면 끝에 닿았다고 간주하여 방향을 전환해야 합니다.

 

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.