작성
·
108
0
http://boj.kr/e94fb8e43b714794a0950505c0091594
아래의 dfs 함수에서 a[ny][nx] == 1일때 왜 continue 하는 것 인가요?
int dfs(int y, int x){
visited[y][x] = 1;
int ret = 1;
for (int i = 0; i < 4; i++) {
int ny = y + dy[i];
int nx = x + dx[i];
if (ny < 0 || nx < 0 || ny >= m || nx >= n || visited[ny][nx] == 1) {
continue;
}
if (a[ny][nx] == 1) {
continue;
}
ret += dfs(ny, nx);
}
return ret;
}
답변 1
0
안녕하세요 현이님 ㅎㅎ
지금 보시는 것처럼 영역이 나눠지는 저 색칠부분을 -> 1로 표기를 해놓은 상태입니다.
그렇기 때문에 해당 부분은 탐색하지 못하게 만들어야 합니다. 우리가 탐색해야 하는 부분은 색칠하지 않은 부분인 1, 2, 3영역이죠?
그렇기 때문에 이런 코드가 나왔는데요 ㅎㅎ
if (a[ny][nx] == 1) {
continue;
}
이 의미는 색칠한 부분은 탐색하지 않는다! 라는 의미입니다.
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.