stack 대신 queue 를 사용해 bfs 로 변경해도 되나요??
162
26 asked
학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요!
먼저 유사한 질문이 있었는지 검색해 보세요.
서로 예의를 지키며 존중하는 문화를 만들어가요.
아래처럼 Stack 대신 Queue 를 사용해 BFS 로 변경해도 문제가 없을까요?
private void openSurroundedCellsBFS(CellPosition cellPosition) {
Queue<CellPosition> queue = new LinkedList<>();
queue.add(cellPosition);
while (!queue.isEmpty()) {
openAndEnqueueCell(queue);
}
}
private void openAndEnqueueCell(Queue<CellPosition> queue) {
CellPosition currentCellPosition = queue.poll(); // 큐에서 꺼냄
if (isOpenedCell(currentCellPosition)) {
return;
}
if (isLandMineCellAt(currentCellPosition)) {
return;
}
openOneCellAt(currentCellPosition);
if (doesCellHaveLandMineCount(currentCellPosition)) {
return;
}
List<CellPosition> surroundedPositions = calculateSurroundedPositions(currentCellPosition, getRowSize(), getColSize());
for (CellPosition surroundedPosition : surroundedPositions) {
queue.add(surroundedPosition);
}
}
Answer 2
0
안녕하세요, ewgregerg c 님!
네, 그럼요. 저는 설명의 편의를 위해 DFS를 선택했고요. 탐색 과정에 문제만 없다면 어떤 방법을 사용해도 괜찮습니다.
감사합니다. 🙂
0
안녕하세요, 인프런 AI 인턴입니다.
ewgregerg c님, 질문 주셔서 감사합니다.
질문하신 부분은 Stack을 사용하는 DFS(깊이 우선 탐색)를 Queue로 변경하여 BFS(너비 우선 탐색)로 구현한 코드 인 것 같습니다. 큐(Queue)를 사용함으로써 BFS 구조로 문제 없이 변경할 수 있습니다. BFS는 한 레벨씩 탐색을 진행하므로 각 단계에서 주변 노드들을 모두 탐색하도록 하기 위해 큐를 사용합니다.
제시해주신 코드는 BFS 방식으로 충분히 작동할 것으로 보입니다. Queue를 사용하여 순차적으로 노드를 탐색하고 있으며, 현재 코드로는 문제 없이 작동할 것 같습니다. 기본적으로 BFS에서는 현재 지점의 주변 노드들을 큐에 추가하여 그 다음 레벨의 노드들을 탐색하는 방식입니다.
코드의 각 메소드들이 의도대로 동작하는지(예: isOpenedCell, isLandMineCellAt, openOneCellAt 등)를 확인하여 검증하실 수 있습니다.
추가적인 도움이 필요하시다면 언제든지 질문해 주세요! 😊
출처 링크를 참조하시면 관련된 더 많은 정보를 얻으실 수 있습니다.
Spring Boot Hot Swapping - Reload Java Classes without Restarting
[강의 질문] 메서드 선언부
0
89
1
[강의 질문] 메서드와 추상화
0
60
2
DIP 개념에 대한 질문입니다.
0
64
1
만약 보드를 이용한 게임의 종류가 더 다양해진다면 어떻게 될 수 있을지에 대한 고민
0
85
2
DIP 설명 후반부에 IOC에 대한 질문 드립니다.
0
78
2
안녕하세요 ! 혹시 자바가 아닌 다른 객체지향 언어를 알고있어도 강의를 들어도 괜찮을까요 ?!
0
70
1
안녕하세요 메서드명 때문에 고민이 있어서 질문드립니다.
1
64
2
자바 record 사용에 대해서 질문 드립니다!
0
127
2
강의 내용 정리 및 자료 제작 툴 문의 드립니다.
0
136
2
사용할 변수 가깝게 선언하기 질문
0
92
1
오버 엔지니어링
0
147
2
학습용 java/spring 오픈소스 추천
1
360
2
중복된 메서드 줄이는 방법
0
182
2
MarketPlace에서 Sonarlint 검색이 안됩니다.
0
413
3
isLandMineCell() 메서드 질문
0
208
1
Cell[][]BOARD 매개변수받기
0
152
2
ConsoleInputHandler에서 왜 final붙여야 하는지
0
192
1
정적 생성자 메서드 of, from
0
264
2
Getter관해서
0
148
3
이름 바꾸기
0
129
2
현업에서 ISP를 도입하려는데 인터페이스 설계에 있어서 의문이 있습니다.
0
206
2
null을 가질 수 있는 값을 인자로 넘겨야 하는 경우
0
249
3
리팩토링을 하고 난 뒤 다시보면 오히려 더 복잡해 보이는것 같은 느낌입니다..
0
251
2
조합 관계에 대해 질문있습니다.
0
164
2

