1. queue 생성
Queue<Integer> queue = new LinkedList<>();
- BFS에 사용할 큐
- queue는 선입선출(FIFO)구조이므로, BFS에 적합
- 큐에 탐색할 노드를 저장 후, 하나씩 꺼내서 탐색
2. queue 시작노드 추가
queue.add(start);
3. 시작노드 방문 처리
visited[start] = true;
4. 큐가 비어있지않을 때까지 반복
while (!queue.isEmpty())
5. 큐에서 노드 꺼내기
📘 queue.poll
int node = queue.poll();
- 큐에서 노드 하나를 꺼내서 그 노드에 연결된 다른 노드 탐색하게됨
- queue.poll()은 노드를 꺼내면서 동시에 큐에서 제거
6. 모든 A 검사
for (int i = 0; i < n; i++)
- i는 현재 노드와 연결된 다른 노드들을 검사하기 위한 변수
- n은 총 검사할 모든 A의 개수
7. 연결 여부 및 방문 여부 확인
if(computers[node][i] == 1 && !visited[i])
8. 방문 처리
visited[i] = true;
9. 새로 탐색해야할 노드를 큐에 추가
queue.add(i);
- 현재 노드와 연결된 새로운 노드인 i를 탐색하기위해 큐에 추가