강의

멘토링

로드맵

Inflearn brand logo image

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

specture님의 프로필 이미지
specture

작성한 질문수

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

2-M

bfs와 조합을 사용해서 풀어보았는데 어느 부분이 문제인지 잘 모르겠습니다.

해결된 질문

작성

·

90

0

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

bfs와 재귀를 활용한 조합을 사용해서 문제를 풀어보았는데 어느 부분이 문제인지 잘 모르겠습니다.

코드리뷰 부탁드려도 될까요??

http://boj.kr/7b47456f68a3412c8e20dab749b93a20

답변 3

0

specture님의 프로필 이미지
specture
질문자

넵 재귀 로직 수정해서 풀었습니다. 감사합니다 !!

0

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

안녕하세요 ㅎㅎ

   for(int i=0 ; i<n; i++){
   	 for(int j=0 ; j<m; j++){
   	 	  cin >> board[i][j];
   	 	  tmp[i][j] = board[i][j];
   	 	    v.push_back(tmp[i][j]);	
		  }

v에다가는 왜 값을 담으셨나요?

 

또한

void go(vector<int> &v){
	vector<vector<int>> vec(n, vector<int>(m,-1));
	fill(&wall[0][0], &wall[0][0] + n*m ,0 );
	for(int i=0 ; i<v.size(); i++){         //일차원벡터를 받아서 이차원벡터로 변경
   	    int r = i / m ;
   	    int c = i % m;
   	    vec[r][c] = v[i];
	}

이런로직이 있는데 로직 자체가 모호합니다. v에는 각 맵의 값인 0, 1, 2 중 에 해당하는 "값"이 들어가 있습니다.

 

combi함수는 제 교안내의 combi 함수를 참고해주세요.

잘못 구축하셨습니다.

 

일단 이러한 부분들부터 고쳐보시겠어요?

 

감사합니다.

 

0

안녕하세요, 인프런 AI 인턴입니다.
specture님, BFS와 재귀를 활용한 조합 문제에 대한 해결 방법을 찾고 계신 것 같네요.

문제 해결에 있어 BFS와 조합을 모두 활용하시려는 접근이 무척 흥미롭습니다. 이와 관련하여 아래에 도움이 될 만한 이전 질문 & 답변을 소개합니다:

  1. 3-J 질문 있습니다. - 이 답변에서는 BFS와 DFS의 성능 차이 및 최적화에 대한 설명이 포함되어 있어 도움이 될 수 있습니다. BFS를 하는 과정에서 방문 처리나 탐색 조건 등에 대한 조언을 얻을 수 있습니다. 또한 DFS와 재귀 호출 시 스택 오버플로우를 방지하는 방법도 논의되었습니다.

  2. 질문 - 이 게시물에서는 BFS를 ‘L’ 부분에서만 탐색하는 효율적인 방법을 사용한 사례가 있습니다. BFS 구현 시 특정 조건을 설정하여 탐색 범위를 줄이는 접근 방식에 대해 검토할 수 있습니다.

이 두 가지 게시물을 참고하시면 BFS와 조합 문제 해결 시 발생할 수 있는 일반적인 함정 및 최적화 방법에 대해 더 깊이 이해하실 수 있을 것입니다.

어떤 특정 부분에서 문제가 있다고 생각되시면, 코드를 여러 단계로 나누어 디버깅하거나 출력 결과를 중간 중간 확인해 보시는 것도 좋은 방법이 될 수 있습니다.

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

specture님의 프로필 이미지
specture

작성한 질문수

질문하기