본문 바로가기

Leetcode

Leetcode 733. Flood Fill

오늘은 Flood fill 문제이다. 

처음에 문제가 무슨 말인지 잘 몰라서 시간을 잡아먹었다.

 

이해하고 나서는 오랜만에 푸는 DFS 문제에 당황(?) 하여 시간을 잡아먹었다.

한때 1일 1 DFS 할 때에는 눈 감고는 못하지만 눈 뜨고 3분 안에 뚝딱 해치웠는데,

역시 인간은 망각의 동물이다.

 

하핫

 

 

class Solution:
    def floodFill(self, image: List[List[int]], sr: int, sc: int, newColor: int) -> List[List[int]]:
        row = len(image)
        col = len(image[0])
        value = image[sr][sc]

        # DFS
        def DFS(i, j):
            if 0<= i < row and 0 <= j < col and value == image[i][j]:
                image[i][j] = newColor
                DFS(i-1, j)
                DFS(i+1, j)
                DFS(i, j-1)
                DFS(i, j+1)
                
        if newColor != value:
            DFS(sr, sc)
        
        return image

 

내장함수 DFS를 불러주었다. 조건을 만족할 때에만 새로운 색으로 칠해주고,

DFS를 위, 아래, 왼쪽, 오른쪽 4-direction으로 호출해주었다.

 

 

그리고 본 함수에서, newColor와 value가 같을 때에는 바꿔 줄 필요가 없으므로, 조건문을 추가해주었다.

 

간단하게 끝!

 

 


오늘의 주저리

 

오늘은 텐퍼센트에서 커피 907mL를 샀다. 근데 3분의 1도 다 못마신게 함정 ... 오늘 밤새고죽자

 

오늘 연구 중인 데이터의 타임프레임을 확인하는데, 세상에나 뭔가 잘못된 것이 있었다. 

오늘도 이렇게 실패를 쌓아간다. 

십만번 중 386번 실패! 

 

더 많이 도전하고, 더 많은 실패를 거듭하고 싶다 !!

 

 

끝!