kimsd1983   2년 전

메소드에 dfs 형태로 메소드에 배열을 입력으로 하는 재귀호출을 만들었습니다.

자꾸 결과가 이상하게 나오길래 디버깅 해보니 메소드를 탈출하고 상위 계층으로 되돌아가도 배열 값이 하위 계층에서 탐색한 상태 그대로 남아있습니다.

아무래도 얕은 복사가 된 것 같은데 Clone() 메소드를 써서 깊은 복사를 해줘도 이 문제가 해결이 안됩니다.

아예 다른 배열을 따로 선언하고 배열 내부 값을 하나하나 다시 지정해줘도 같은 결과만 나옵니다.

어떤 새로운 방법이나 아이디어가 있을까요?

kimsd1983   2년 전

메소드 내에서 매개변수를 처리하고 변경해  그 배열을 return하는 부분이 문제였습니다.

이렇게 하면 return하는 배열과 원 배열이 따로 구분될 줄 알았는데 참조형식인지 원본자체도 함께 바뀌더라구요.

매개변수로 쓰인 배열의 값들을 읽기만 하도록 해서 원본이 변경되지 않도록 하는 방법으로 해결했습니다.

아예 배열들을 스택으로 관리하니까 좀 더 직관적이고 디버깅도 편하네요!

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