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

조현성님의 프로필 이미지
조현성

작성한 질문수

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

2-S

2-S 비슷하게 했는데 안되서 질문드립니다

작성

·

199

0

http://boj.kr/c12fb379e72a4bac8f5560898b40d140

안녕하세요 선생님 dfs(i)를 dp[i]로 안받고 바로 내보내면

mx가 1로 고정되어서 나오는데 이렇게 하면 안되나요?

 

답변 1

0

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

안녕하세요 현성님 ㅎㅎ

        if(mx<dfs(i)){
            mx=dfs(i);
            v.clear();
            v.push_back(i);
        }else if(mx==dfs(i)){

코드를 보시면 계속해서 dfs를 돌리고 있습니다.

visited -> 초기화

dfs를 하게 되면

visited 방문 처리 완료.

그 다음 또 dfs, dfs를 하게 되니 생각했던 로직과 다르게 나오는 것입니다.

dfs코드를 보면

int dfs(int here){
    int ret=1;
    visited[here]=1;

다음처럼 dfs는 방문처리 배열인 visited를 수정하고 있습니다.

 

해당부분을 인지하시고 다시 수정해보시겠어요?

 




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

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

감사합니다.

강사 큰돌 올림.



조현성님의 프로필 이미지
조현성

작성한 질문수

질문하기