2차원 배열을 반시계 방향으로 탐색합니다.
구현
입력값이 N일때, 직진하는 경우는 다음과 같습니다.
방향 직진횟수
하 N-1
우 N-1
상 N-1
좌 N-2
하 N-2
우 N-3
상 N-3
좌 N-4
하 N-4
.
.
.
dr = [1, 0, -1, 0]
dc = [0, 1, 0, -1]
record = N*N
straight = N-1 // N-1, N-2, N-3 ...
repeat = straight
turn = -1
i,j = 0
while (record > 0):
if (record = find)
// find의 좌표 기록
i += dr[direction % 4]
j += dc[direction % 4]
if (repeat = 0):
turn++
direction++
if (turn = 2):
turn = 0
repeat = --straight
else:
repeat = straight