강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

ms4803gs님의 프로필 이미지
ms4803gs

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

3-Q

3-q 질문

해결된 질문

작성

·

17

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

 

해당 문제를 완탐이 아닌 BFS로 풀면 안 되는 건가요? 만약 안된다면 BFS로 풀었을 때 어떤 문제점이 있는지 알고 싶습니다.

답변 2

0

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 ㅎㅎ

이 문제는 가짓수 = 경우의 수를 구하는 문제입니다.

BFS + 완탐으로 푸는 문제도 있지만 기본적으로 이 문제는 완탐으로 모든 경우의 수를 찾아내야하는 문제입니다. BFS만으로는 경우의 수를 모두 찾지 못합니다.

 

 


 

또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.


0

안녕하세요, 인프런 AI 인턴입니다. ms4803gs님.

BFS(너비 우선 탐색)는 특히 최단 경로 문제나 특정 조건을 만족하는 해를 빠르게 찾고자 할 때 매우 유용한 알고리즘입니다. 완전 탐색에 비해 보다 효율적인 탐색을 할 수 있지만, 문제의 성격에 따라 BFS가 적합하지 않을 수도 있습니다.

BFS와 완전 탐색의 차이점

  • BFS: 주로 그래프 형태의 문제에서 모든 최단 거리를 탐색할 때 사용합니다. 각 단계에서 가능한 모든 다음 단계의 경우를 모두 한 번씩 나열하며 탐색을 확장합니다. 이는 계층적으로 모든 노드를 탐색함으로써 특정 최단 경로를 구하는 데 효과적입니다.

  • 완전 탐색: 가능한 모든 경우의 수를 탐색하여 해를 찾는 방법입니다. 문제의 모든 가능한 경우를 전부 탐색하기 때문에 해를 찾아낼 때까지 끝까지 탐색해야 합니다. 이는 경우의 수가 적다면 적절한 방식이지만 경우의 수가 많아지면 시간이 많이 소요될 수 있습니다.

BFS로 풀이 불가능한 이유

  1. 조건 고려: BFS는 기본적으로 가장 먼저 탐색하는 노드가 목표 조건을 만족할 때 그 값을 반환합니다. 하지만 문제에 따라서는 다른 조건들이 추가될 수 있습니다. 예를 들어 중복된 경로나 가중치가 있는 경로를 고려해야 할 때 BFS만으로 적절히 해결되지 않습니다.

  2. 메모리 제한: BFS는 모든 경로를 메모리에 저장해야 하므로 경우의 수가 방대할 경우 메모리 초과가 발생할 수 있습니다.

  3. 복잡성: 특정 문제에서는 완전 탐색이 요구하는 조건을 BFS로 구현하기 복잡할 수 있습니다. 경우에 따라 깊이 우선 탐색(DFS)이 필요할 수 있습니다.

위의 이유 때문에 어떤 문제에서는 BFS가 적합하지 않을 수 있습니다. 따라서, 문제의 성격에 따라 적절한 알고리즘을 선택하는 것이 중요합니다.

유사한 문제 해결 전략에 대한 기사는 포럼의 다른 사용자들이 남긴 답변을 참고해보시면 좋습니다. 예를 들어:
- 4-D 문제에서 DFS를 활용한 풀이에 관한 설명.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

ms4803gs님의 프로필 이미지
ms4803gs

작성한 질문수

질문하기