CodingTest/LeetCode

[LeetCode] 733. Flood Fill, Easy

뜸부깅 2025. 4. 3. 15:33
반응형

1. 문제

  • 2차원 배열과 sr, sc 좌표, color가 주어질 때, [sr,sc] 좌표의 color와 동일한 색상을 가지는 인접한 노드 전부를 color로 변경한 2차원 배열을 반환하라.

2. 해결

const row =[-1, 1, 0, 0];
const col = [0, 0, -1, 1];

function floodFill(image: number[][], sr: number, sc: number, color: number): number[][] {
    if(image[sr][sc] === color) {
        return image;
    }

    const originColor = image[sr][sc];
    image[sr][sc] = color;

    for(let i=0 ; i< 4; i++) {
        const adjustX = sr + row[i], adjustY =sc + col[i];
        if((adjustX >=0 && adjustX < image.length && adjustY >= 0 && adjustY < image[sr].length) && image[adjustX][adjustY] === originColor)
        floodFill(image, adjustX, adjustY, color);
    }

    
    return image;
};
  • 주어진 좌표에서 인접한 노드를 모두 탐색해야하기 때문에 DFS를 사용했다.
  • 인접한 노드를 판별하고, [sr,sc]와 동일한 컬러이면 탐색을 이어나간다.
  • color로 색칠된 노드는 방문하지 않는다.