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

moveityourself01님의 프로필 이미지
moveityourself01

작성한 질문수

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

3-C

인구 이동 문제

작성

·

134

0

http://boj.kr/df8629bfbd4f4bd69ecbbb0fa031719a

 

  1. go 함수를 통해 서로 국경선을 공유하는 영역끼리 1로 표시하고 연결된 컴포넌트 문제로 만들기

  2. dfs 함수를 통해 영역별로 각각 접근하면서 A[r][c] 값 평균화

 

이 아이디어로 접근했는데 무엇이 잘못된건지 모르겠습니다..

아예 틀린 생각인가요..??

답변 1

0

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

안녕하세요 ㅎㅎ

생각은 괜찮습니다만 몇가지 로직이 빠진게 있습니다.

            area[ny][nx] = 1;
            area[y][x] = 1;
                if(area[i][j]){
                    A[i][j] = sum / cnt;
                }

인구 이동 마다 평균화작업을 진행해야 합니다.

area를 바꾸고 -> 해당 area 영역들을 모아서 평균화를 시켜야 합니다.

 

또한 이러한 인구이동은 매번 일어나야 합니다.

즉,

    while (move님의checkfunction()) {
        days++;

이런식의 코드가 나와야 합니다. 인구이동이 안일어날때까지 계속하는 것이기 때문에 for문 2개로는 힘듭니다.

그리고 이러한 루프때문에 매번 초기화작업이 일어나야 합니다. area든 visited든 말이죠.






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

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

감사합니다.

강사 큰돌 올림.


 

moveityourself01님의 프로필 이미지
moveityourself01

작성한 질문수

질문하기