풀이를 떠올리는 것은 쉽지만 소스코드로 옮기기 어려운 문제

(0,0)으로 표현, 다른 위치또한 (x, y)로 표현(0,0)을 기준으로 아래 쪽은 행(row), 오른쪽은 열(column)❗ 주의 ❗
학교에서 배운 x좌표, y좌표의 개념이 아니다. 좌표평면의 개념이 아니라는 것.
위 그림에서 열의 방향은 Y, row의 방향은 X이다. 어느 지점에서 상하좌우로 이동하기 위하여 방향 좌표를 만들어 줄수 있다.
(2,2)에서 오른쪽으로 한칸 이동하면 (2, 3)임을 알 수 있다. 그렇다면 무엇이 변했는지 눈에 보일 것이다. (X, Y)의 형태이므로 Y+1을 통해 우측으로 한칸 이동한 형태로 변경이 되었음을 볼 수 있다. 이러한 방법으로 상하좌우의 위치 변경이 모두 가능하다.
상하좌우의 방향좌표를 정리해보자(한칸 이동을 기준으로 작성)
상 -> (-1, 0)
하 -> (1, 0)
좌 -> (0, -1)
우 -> (0, 1)
// 동 북 서 남
int[] dx = {0, -1, 0, 1}
int[] dy = {1, 0, -1, 0}
// 현재 위치 설정
int x = 2
int y = 2
// 이동했을 때 위치의 결과, 인덱스가 0인 경우 우측방향
nx = x + dx[0];
ny = y + dy[0];