huyng1233   2년 전

안녕하십니까, DFS를 활용한 문제를 풀던 中 궁금증이 있어 질문드리게 되었습니다.

아래와 같이 DFS를 구성하였을 때, boolean[][] check 함수의 값이 계속 유지되는 건에 대한 의문인데요.

DFS를 하던 中 check 값을 통하여 중복 체크를 진행하였을 때, DFS를 진행하면서 check의 값이 복사되어 같은 값을 가진  다른 배열이 되어 진행이 되잖아요?

그럼 DFS가 진행될 때마다 check가 하나씩 생기고, 그 DFS가 끝나게 되면 해당 check 배열은 사라지면서, 다음 DFS로 진행이 되어야 한다고 생각합니다.

근데 그 값이 그대로 전해지는 것이 아니라 check 함수 값 자체에 주소값으로 접근을 하는 것 같습니다.

그래서 check 값의 초기화가 안되는 것 같은데... 제가 무언가 잘못 알고 있는건가요?

귀찮게해드려 죄송하지만 상세히 답변좀 부탁드리겠습니다ㅠ

djm03178   2년 전

자바는 primitive 타입을 제외한 모든 오브젝트는 레퍼런스로 전달됩니다. 배열도 마찬가지입니다.

huyng1233   2년 전

Reference로 전달되는데도 check 값이 계속 유지가 되는 이유는 뭘까요?ㅠㅠ

theta93   2년 전

reference가 뭔지 검색해보시면 될듯합니다!

djm03178   2년 전

레퍼런스로 전달되니까 값이 안 변하죠. 복사가 아니라, 그 배열의 위치만 전달한 거니까요.

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