# 밑변의 길이, 높이 = n
# 맨 위 꼭짓점부터 반시계 방향으로 달팽이 채우기 진행
# 첫행부터 마지막 행까지 순서대로 합친 배열 return 하기
# 1은 항상 고정 주기적으로 행 다 돌때마다 행 + 1개 append 하기
# 행 값만큼 append 다 되면 다음 행으로 넘어감
# 각 행 맨 끝 값(count == 현재행 일때) => n + n-1 + n-(현재 행)
# 각 행의 두번째 값 => 위 행의 두번째값 + 1, 맨 마지막 줄 제외
# 맨 마지막 위의 행은 두번째 값 채우고 +1해나가면서 넣다가 count == 행 값 되면 마지막 값 넣기
# 맨 마지막줄은 행번호부터 n-1개만큼 더해가서 추가하면 끝
def solution(n):
dp_list = [[0] * i for i in range(1, n + 1)] # 초기 배열 생성
x , y = -1, 0 # 처음 위치 지정
num = 1 # 처음 행 지정
answer = []
for i in range(n):
for j in range(i, n):
if i % 3 == 0:
x += 1
elif i % 3 == 1:
y += 1
else:
x -= 1
y -= 1
dp_list[x][y] = num
num += 1
for hang in dp_list:
for number in hang:
answer.append(number)
return answer
댓글남기기