Flood Fill

박병주·2024년 8월 27일
0

알고리즘

목록 보기
8/14
    // 방향 벡터: 상, 하, 좌, 우
    private static final int[] dx = {-1, 1, 0, 0};
    private static final int[] dy = {0, 0, -1, 1};

    public static void floodFill(char[][] grid, int x, int y, char target, char replacement) {
        // 경계 체크 및 이미 방문한 경우 또는 목표 값이 아닌 경우 리턴
        if (x < 0 || x >= grid.length || y < 0 || y >= grid[0].length) return;
        if (grid[x][y] != target) return;

        // 현재 위치의 값을 대체 값으로 변경
        grid[x][y] = replacement;

        // 인접한 4방향을 탐색
        for (int i = 0; i < 4; i++) {
            int nx = x + dx[i];
            int ny = y + dy[i];
            floodFill(grid, nx, ny, target, replacement);
        }
    }
profile
응애

0개의 댓글