문제 풀이 흐름
앞의 조건을 모두 정리한 문제 풀이 과정입니다.
1. n × n 2차원 배열을 생성합니다.
2. 반시계 방향(시작은 아래로)의 나선형으로 배열을 채워나갑니다.
3. 배열의 끝에 닿으면 방향을 변경합니다.
4. 마지막으로 할당할 숫자가 0이 아닐 때/삼각형을 모두 채웠다면 정답을 제출합니다.
코드 작성
1. n × n 2차원 배열을 생성합니다.
2차원 배열을 생성하는 방법은 몇 번 해봤으므로 추가 설명은 하지 않습니다.
snail = [[0] * i for i in range(1, n + 1)]
다만 이번에는 파이썬의 특징을 활용하여 배열을 생성하겠습니다. 리스트는 다른 언어의 배열과 다르게 크기를 고정으로 생성할 필요가 없습니다. 필요 없는 배열은 아예 처음부터 생성하지 않으므로 메모리를 절약할 수 있습니다. 대신 방향 계산은 그대로 이루어져야 정상적인 조회가 가능하므로 배열을 다루는 데 익숙하지 않다면 [[0] * 5 for _ in range(n)]처럼 빈 공간도 같이 생성하여 오류를 막는 것이 좋습니다.