1번 문제.
https://www.acmicpc.net/problem/1913
-> 달팽이
import sys
# nxn 보드를 위해 입력
n = int(sys.stdin.readline())
# 보드 내에서 얻고자 하는 숫자
m = int(sys.stdin.readline())
# nxn 보드판 만들기
board = [[0 for _ in range(n)]for _ in range(n)]
# 방향전환용
# 상우하좌
dr = [0, 1, 0, -1]
dc = [1, 0, -1, 0]
# 홀수 보드
row = n//2
col = n//2
# 시작 숫자
num = 1
# 이동할 길이
len = 0
# 보드 좌표에서의 숫자
board[row][col] = num
while True:
# 방향에대한 for문
for i in range(4):
# 한칸씩 이동해서 숫자입력
for _ in range(len):
row += dr[i]
col += dc[i]
num += 1
board[row][col] = num
# 찾을 숫자의 인덱스 저장
if num == m:
result = [row+1, col+1]
if row == 0 and y == 0:
break
row -= 1
col -= 1
len += 2
for i in range(n):
print(*board[i])
print(*result)
=======================================================
1491번 나선 문제를 풀다가 이런 문제들이 달팽이 배열이라는 것을 깨달았다.
그래서 달팽이 문제들을 풀어보며 다음에 1491을 풀어보면 좋을 것 같아 1913번 문제를 풀게 되었다. 그러나.. 런타임 에러,,,,? 잘만 나오는데 뭐가 문제인지 ㅋ