반응형
문제 링크
https://leetcode.com/problems/flood-fill/
내 코드
int startPixel = 0;
public int[][] floodFill(int[][] image, int sr, int sc, int color) {
if(!isInArrayIndex(image, sr, sc)) return image;
startPixel = image[sr][sc];
recursion(image, sr, sc, color);
return image;
}
private void recursion(int[][] image, int sr, int sc, int color) {
if(!isInArrayIndex(image, sr, sc)) return;
else if(image[sr][sc] == color || image[sr][sc] != startPixel) return;
image[sr][sc] = color;
recursion(image, sr + 1, sc, color);
recursion(image, sr - 1, sc, color);
recursion(image, sr, sc + 1, color);
recursion(image, sr, sc - 1, color);
}
private boolean isInArrayIndex(int[][] arr, int sr, int sc) {
if(sr >= arr.length || sc >= arr[0].length) return false;
else if(sr < 0 || sc < 0) return false;
return true;
}
결과
이전 문제와 비슷한 문제지만 시작 인덱스가 주어지고 해당 인덱스 주변으로만 값을 계산하면 되기 때문에 난이도가 더 낮은 것으로 보이는것 같습니다.
필요 graph 문제는 조금 감이 잡혀가는듯 하네요.
반응형