def solution(n):
num = 1
type = 1
idx = 0
arr = [[] for _ in range(n)]
answer = []
while n >= 0:
if type % 3 == 1:
for _ in range(0, n):
arr[idx].insert(type // 3, num)
num += 1
idx += 1
idx -= 1
elif type % 3 == 2:
for i in range(1, n + 1):
arr[idx].insert(type // 3 + i, num)
num += 1
idx -= 1
elif type % 3 == 0:
for _ in range(0, n):
arr[idx].insert(len(arr[idx]) - type // 3 + 1, num)
num += 1
idx -= 1
idx += 2
n -= 1
type += 1
for i in arr:
for j in i:
answer.append(j)
return answer
문제를 보고 특정한 알고리즘을 이용해 문제를 풀어야 하겠다기 보다는 단순 구현으로 문제를 풀 수 있을 것이라고 생각하였다. 그 이유는 반복되는 규칙이 많이 보였기 때문이다.
- 먼저 숫자는 왼쪽 / 아래 / 오른쪽 순으로 채워진다.
- 숫자가 채워지는 만큼은 N -> N - 1 -> N - 2 순으로 채워진다.

N이 4일 때, 1234로 왼쪽이 채워지고, 567로 아래, 89로 오른쪽, 10으로 왼쪽이 채워지는 형태이다.
그래서 while문으로 반복하면서 N이 0이 될때 벗어나도록 하였고, 왼쪽, 아래, 왼쪽에 대한 분기를 타서 번호를 삽입하도록 진행하였다.
X