해결된 질문
작성
·
285
·
수정됨
0
private static void bfs() {
while (!queue.isEmpty()) {
int size = queue.size();
for (int i = 0; i < size; i++) {
Point now = queue.poll();
for (int j = 0; j < 4; j++) {
int nextX = now.x + dx[j];
int nextY = now.y + dy[j];
if (nextX >= 0 && nextY >= 0 && nextX < n && nextY < m) {
if (board[nextX][nextY] == 0) {
board[nextX][nextY] = 1;
day[nextX][nextY] = day[now.x][now.y] + 1;
queue.offer(new Point(nextX, nextY));
}
}
}
}
}
}
코드의 bfs 메서드이고, 큐의 사이즈만큼 순회하는 로직
int size = queue.size();
for (int i = 0; i < size; i++) {
Point now = queue.poll();
을 추가했습니다.
결과나 과정 측면에서 봤을 때, 강의에서의 코드와 무슨 차이가 있는지 모르겠는데, 혹시 성능 상에서 기존 코드보다 많이 떨어지는 코드일까요?
이렇게 작성해도 되는지 궁금합니다. 이전 bfs 강의에서는 이렇게 큐의 사이즈를 구해서 순회하는 로직을 사용하더라구요.