삼성코테의 가장 기초가 되는 달팽이 문제
역시나 어려운 달팽이ㅠ_ㅠ
우노 님의 코드를 참고했습니다
n = int(input())
target = int(input())
graph = [[0 for _ in range(n)] for _ in range(n)]
x = n//2
y = n//2
#상하좌우
dx = [-1,1,0,0]
dy = [0,0,-1,1]
graph[x][y] = 1
#result = []
num = 2
size = 3 #최소 테두리의 사이즈
while x!=0 or y!=0 : #x,y가 0,0이 될 때까지
while num <= size*size: #현재 테두리를 다 지날때까지
if x==y==(n//2): #시작점이라면 이동횟수 초기화 & 위로 한 번 움직이기
up, right, down, left = size, size-2, size-1, size-1
x += dx[0]
y += dy[0]
up -= 1
elif right > 0:
x += dx[3]
y += dy[3]
right -= 1
elif down > 0:
x += dx[1]
y += dy[1]
down -= 1
elif left > 0:
x += dx[2]
y += dy[2]
left -= 1
else :
x += dx[0]
y += dy[0]
up -= 1
graph[x][y] = num
#if num==target:
#result = [x+1,y+1]
num += 1
size += 2 #현재 테두리를 다 지나면 그 다음 테두리 사이즈로 변경
n -= 2 #시작 좌표 변경
# for i in range(len(graph)):
# print(*graph[i])
# print(*result)
result_x, result_y = 0, 0
for i in range(len(graph)):
for j in range(len(graph)):
print(graph[i][j], end=' ')
if graph[i][j] == target:
result_x = i+1
result_y = j+1
print()
print(result_x, result_y)
왜인지는 모르겠는데 print(*result), print(*graph[i]) 방식으로 출력하면 런타임에러가 난다
인덱스 문제인가? 왜일까?