배열을 입력받아 순서가 뒤집힌 배열을 리턴하는 문제였다.
주의사항에서 눈여겨봐야할 건,
1. 재귀함수의 형태로 작성
2. 반복문 사용 ❌
3. 입력받은 배열이 함수 호출 뒤에도 처음 상태를 유지
해야 한다는 것이다.
특히 3번 입력받은 배열이 유지되기 위해선 깊은 복사
가 필요하다. 얕은 복사로 결과값을 반환하면, 결국 기존 원본과 같은 주소값을 갖기 때문에 처음 상태가 유지되지 않는다. 따라서, Arrays.copyOfRange()
와 System.arraycopy()
함수를 사용해 깊은 복사를 해주었다.
문제를 풀다보니 재귀를 학습할 때 풀었던 코플릿이 생각나면서 동일한 방법으로 문제를 풀면 되겠다고 생각했다. (여기까지 생각하는데 약 1~20분이 소모됐다 😅) 재귀적 사고는 여전히 어렵다.