코딩 테스트 연습

주의

재귀를 활용한 동일한 방법으로 문제를 풀었지만, 어떤 건 시간초과가 나고 어떤 건 6초 이내로 모든 테스트가 해결됩니다. 그 이유는 재귀함수를 동작시킬 때 매개변수로 어떤 것을 넘겨주느냐 였습니다.

처음에는 문제에서 주어지는 vector<vector<int>> arr 자체를 매개변수로 넘겨줬습니다. 탐색하는 시작 좌표와 길이만 달라질 뿐이지 해당 변수를 탐색해야 하는 것은 동일하기 때문입니다. 하지만 매개변수로 이렇게 굉장히 큰 메모리를 차지하고 있는 변수를 넘겨주게 되면, 복사를 하는 과정에서 굉장히 시간이 많이 소요됩니다. 따라서 풀이 방법과는 별개로 시간 초과가 날 수 있는 것입니다.

따라서, 전역 변수로 같은 자료형을 선언해주고 전역 변수에 한 번만 복사해놓고, 전역변수를 활용하여 탐색을 하는 것이 시간적으로 훨씬 효율적입니다.

<aside> 💡 참조자로도 가능!! 이게 더 좋습니다.

</aside>