jjhhyper   7년 전

만약 아래 경우처럼 2차원 배열을 함수로 넘겨주고, 재귀함수를 호출할 때

arr2라는 새로운 배열을 만든 후 거기에 복사한 후 arr2로 넘겨줘야하는 건가요?


그러면 재귀함수를 사용하지않고 함수 1번만 호출시에는 arr2라는 배열 만든 후 복사과정 없이

arr함수를 바로사용하면 되나요? 


고수님들 부탁드립ㄴ디ㅏ.

chogahui05   7년 전

어떤 기능을 구현하실 지 명확하게 말해 주세요.

jjhhyper   7년 전

소스가 길지만 

12100번 2084문제입니다.

dfs로 배열을 넘겨주려하는데 복사하면 통과되는데

복사없이 넘겨주면 실패를 합니다.

chogahui05   7년 전

아.. Object를 넘겨주셨잖아요.

정확히 말하면 배열을 넘긴 경우, 배열 주솟값이 값 복사 되어서 넘겨지는 것이지요.

arr2은 그냥 main에 있는 map의 주소를 넘긴 거고요. arr은 arr2 (배열 안에 있는) 내용을 복사한 것이죠.


arr2는 main의 주소를 가지고 있기 때문에

arr2[i][j]=x;

이런 식으로 대입해버리면, main 안에 있는 map이 바뀌게 됩니다.

jjhhyper   7년 전

그럼 복사를 안하고 넘겨줄 경우에는 dfs 재귀함수를 계속 호출하면서 고정된 map값이 변하게되는 군요

위 같은 경우에는 배열을 복사하는 것이 필수겠네용

이해가됬네요 정말 감사합니다!!!

댓글을 작성하려면 로그인해야 합니다.