본문 바로가기
프로그래밍/Algorithm

방향 배열(Direction Array)로 간편하게 상하좌우 배열 이동하기

by bantomak 2023. 8. 25.

방향 배열 사용하기

2차원 좌표상에서 한 점을 기준으로 상하좌우로 이동하는 좌표를 구할 때 코드를 작성하는 방법이다.

BFS, 다익스트라, A* 알고리즘에 자주 등장한다. 이번 기회에 익숙해지도록 하자.

 

예제 코드

using System;

public class Program
{
    public static void Main()
    {
        int[] dirY = new int[] { -1, 1, 0, 0 };
        int[] dirX = new int[] { 0, 0, -1, 1 };

        int[,] array = new int[3, 3] { { 1, 2, 3 },
                                       { 4, 5, 6 },
                                       { 7, 8, 9 } };

        int posY = 1;
        int posX = 1;

        Console.WriteLine($" 초기 위치 : {array[posY, posX]}");

        for(int i = 0; i < 4; i++)
        {
            int nextY = posY + dirY[i];
            int nextX = posX + dirX[i];

            Console.WriteLine($" 이동 위치 : {array[nextY, nextX]}");
        }
    }
}

 

상하좌우로 잘 이동하는걸 확인할 수 있다.

 

출처

 

[코딩 팁] 방향 배열(Direction Array) : 상하좌우 이동

인트로 2차원 좌표상에서 한 점을 기준으로 상하좌우 좌표를 구할 때 코드를 간결하게 작성하는 방법이다. 방향 배열은 BFS, 다익스트라, A*알고리즘에 자주 등장한다. 코드 switch 혹은 if-else문을

kangworld.tistory.com

댓글