어찌저찌 백트래킹 문제를 풀었더니 이번엔 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 를 실행하고, 확인하고, 실행하고, 확인하고, 실행하고를 반복한다.
한 유형만 쭉 공부하면 다른 유형을 쉽게 까먹어서 여러 유형을 섞어 풀어보고 싶은데, 어떤 좋은 방법이 있을지 모르겠다. 🤔