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

정태민님의 프로필 이미지
정태민

작성한 질문수

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

3-C

정답코드 40번째 줄 지도 업데이트 시점에 대한 질문입니다!

작성

·

148

0

http://boj.kr/5d7d83e1069547288f02236c01cc8d5a

위는 정답 코드입니다!

40번째 라인에서 a(인구 지도)를 업데이트 하는 위치가 이중 for문을 벗어난 다음이 되어야 하는 것이 아닌지 문의 드립니다.

이중 for 문 안에서 지도를 업데이트 하게 된다면, 원래라면 이동이 불가능한 지역간의 이동이 가능하게 될것 같습니다.

예를 들어

3 10 11

0 50 40

40 20 30

0 0 0

위와같이 진행한다고 한다면

dfs가 한번돌고 나면 지도가 다음과 같을것 같습니다

0 35 35

40 35 35

0 0 0

이 상태에서 다음 dfs를 돈다면

0 36 36

36 36 36

0 0 0

이 되면서 하루만에 전부 통합되는 상태가 되지 않을까 싶습니다!

실제로 코드를 돌려보면

3 10 11

0 50 40

40 20 30

0 0 0

1

다음과 같이 나옵니다!

정답은 2여야 하지 않을까 싶어서 질문합니다!

답변 1

0

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

안녕하세요 태민님 ㅎㅎ

0 35 35

40 35 35

0 0 0

이렇게 되었을 때 차이는 5죠?

근데 l = 10 이고 r = 11이기 때문에

인구인동을 일어나지 않습니다. ㅎㅎ

그래서 1번입니다.

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

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

감사합니다.

강사 큰돌 올림.

정태민님의 프로필 이미지
정태민
질문자

친절한 답변 감사드립니다 ㅠㅠ 그런데 제가 예시를 잘못든것 같아요

3 4 11

0 50 40

40 20 30

0 0 0

이렇게 된다면 어떨가요??
원래라면 40 과 20 간의 차이가 20이니, 11보다 커서 인구이동이 발생하지 않지만,

0 35 35

40 35 35

0 0 0

다음과 같이 진행된 후에는 40과 35의 차이가 5가되어 인구이동이 발생하게 될것 같습니다..

번거롭ㅎ게 만들어서 죄송합니다 ㅠ

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

해당 예시는 답이 2로. 태민님께서 말씀하신대로 이동이 2번일어나게 됩니다.

감사합니다.

정태민님의 프로필 이미지
정태민

작성한 질문수

질문하기