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

kimseunghwan7777님의 프로필 이미지
kimseunghwan7777

작성한 질문수

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

3-B

질문

작성

·

208

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

구간이랑 main의 for에 조건 안 넣은 건 그냥 처음 손가는대로 해서 실수가 있어요..! 논리만 판단해주시면 감사할 듯 해요!!

kimseunghwan7777님의 프로필 이미지
kimseunghwan7777

작성한 질문수

질문하기