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

SpRingLJM님의 프로필 이미지
SpRingLJM

작성한 질문수

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

2-B

코드 순서 차이

해결된 질문

작성

·

119

0

1012번 문제 이전에 dfs. bfs 강의 부분에서 제가 기억하기로는

ret++; dfs(i, j); 이렇게 써서 제출 후 정답은 맞았습니다만...

이 두 코드의 위치가 바뀌어도 상관없는 걸로 아는데
제가 알고 있는 것이 맞나요?

아니면 혹시 코테 볼 때는

dfs(i, j); ret++; 이렇게 해야만 하나요???

답변 1

0

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

안녕하세요 SP님 ㅎㅎ

그걸 일반화하기에는 어렵습니다.

다만 이 문제에서는

        for(int i = 0; i < n; i++){
            for(int j = 0; j < m; j++){
                if(a[i][j] == 1 && !visited[i][j]){
                    dfs(i, j);
                    ret++;
                }
            }
        }

이렇게 하나

        for(int i = 0; i < n; i++){
            for(int j = 0; j < m; j++){
                if(a[i][j] == 1 && !visited[i][j]){
                    ret++;
                    dfs(i, j); 
                }
            }ㅇ
        }

 

이렇게 하나 상관없습니다.

이 의미자체가 ret은 dfs가 호출할 때 ++을 하면 된다. 이기 때문에 후위이던 선위이던 상관없습니다.



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

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

감사합니다.

강사 큰돌 올림.

 

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

그렇군요. 답변해주셔서 감사합니다!

SpRingLJM님의 프로필 이미지
SpRingLJM

작성한 질문수

질문하기