# 구현

# 머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정
# 모든 문제가 구현을 필요로 하지만, 코딩테스트에서는 다음과 같다.

# 구현 유형의 문제란,
#   - 풀이를 떠올리는 것은 쉽지만 소스코드로 옮기기 어려운 문제를 칭합니다.

# 구현 유형의 예시
#   - 알고리즘은 간단한데 코드가 지나칠 만큼 길어지는 문제
#   - 실수 연산을 다루고, 특정 소수점 자리까지 출력해야 하는 문제
#   - 문자열을 특정한 기준에 따라서 끊어 처리해야 하는 문제
#   - 적절한 라이브러리를 찾아서 사용해야 하는 문제

# 알고리즘 문제에서 2차원 공간 행렬(Matrix)의 의미로 사용됩니다.

data = [
    (0, 0), (0, 1), (0, 2), (0, 3), (0, 4),
    (1, 0), (1, 1), (1, 2), (1, 3), (1, 4),
    (2, 0), (2, 1), (2, 2), (2, 3), (2, 4),
    (3, 0), (3, 1), (3, 2), (3, 3), (3, 4),
    (4, 0), (4, 1), (4, 2), (4, 3), (4, 4),
]

# 시뮬레이션 및 완전 탐색 문제에서는 2차원 공간에서의 방향 벡터가 자주 활용됩니다.
#    동, 북, 서, 남
dx = [0, -1, 0, 1]
dy = [1, 0, -1, 0]
# 동서로 이동할 때는 열(y) 좌표를, 남북으로 이동할 때는 행(x) 좌표를 수정하면 된다.

# 현재 위치가 (2, 2) 일 때,
x, y = 2, 2
# 다음 위치
for i in range(4):
    nx = x + dx[i] # i에 이동하고 싶은 방향 입력
    ny = y + dy[i]
    # print(nx, ny)