[코드트리 챌린지]3주차 실력진단 및 DFS

Arcanine·2023년 9월 24일
0

어찌저찌 백트래킹 문제를 풀었더니 이번엔 dfs 문제에서 막혔다...
몇 주 손놨다고 다 잊어서... 너무 슬프다...

문제: https://www.codetree.ai/missions/2/problems/seperate-village/description


테스트 문제는 대략 이 문제와 비슷했다.

dfs 는 말만 들으면 어려워보이지만, 구현이 쉽고 이해하기도 쉽다.

def dfs(x, y, person):
    
    dxs, dys = [1, 0, -1, 0], [0, -1, 0, 1]
    for dx, dy in zip(dxs, dys):
        nx, ny = x + dx , y + dy
        if can_go(nx, ny):
            person += 1
            visited[nx][ny] = 1
            person = dfs(nx, ny, person)
           

    return person

visited 배열로 방문했는지 안했는지 확인하고, 안했다면 또 dfs 를 실행하고, 확인하고, 실행하고, 확인하고, 실행하고를 반복한다.

한 유형만 쭉 공부하면 다른 유형을 쉽게 까먹어서 여러 유형을 섞어 풀어보고 싶은데, 어떤 좋은 방법이 있을지 모르겠다. 🤔

profile
Flutter Developer

0개의 댓글