작성
·
209
0
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
http://boj.kr/681ea9efbab148389692696bbe044d80
문제 고민하다가 강사님께서 말씀하신 풀이대로 하던 중에 "모든 구역 다 탐방해도 되지만, 그냥 L인 부분만 골라서 그 좌표 넣어서 하는 건 안 될까?' 라는 생각이 들어서 갑자기 이 코드로 해봤는데요, bfs에서 반환되는 부분이랑 main에서 treasure.size 부분에서 오류가 있다는 건 아는데, 이렇게 해서 이 문제 해결에 대해서 강사님의 생각이 듣고 싶습니다!
답변 2
1
안녕하세요 kim님 ㅎㅎ
저도 근데 L부분에서만 탐색을 이어가고 있어요
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++){
if(a[i][j] == 'L') bfs(i, j);
제 코드인데요 L일 때 ~~~ 탐색을 하죠?
자 KIM님의 코드를 볼게요.
for(int j = 0 ; j < n ; j++)
{
cin >> a[i][j]; // i는 y 관련 - m || j-x-n
if(a[i][j]=='L') treasure.push_back({i,j}); // (y,x)로 넣음.
}
L일 때 넣어서 탐색을 하죠?
같은 코드입니다.
다만, _d = visited[ny][nx];
이거 있잖아요.
mx = max(mx, _d)
이런 부분이 없어요.
이런 부분만 다르지 나머지 부분은 괜찮습니다. bfs안에 매번 초기화하는 것도 잘하셨습니다.
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.
0