스스로 문제를 풀어보시는 것이 당연히 말할 필요도 없이 좋을 텐데요… 하지만 경우에 따라서 정답을 보시면서 문제를 푸시는 게 더 나을 때도 있습니다.
특히 입문자가 모든 문제를 스스로 풀려고 하시면 진도가 너무 더딜 수 있고요. 더 큰 문제는 계속되는 실패로 인해 완전히 흥미를 잃거나 아예 포기하게 되실 수 있어요. 그래서, 처음 접하는 유형의 문제는 너무 스스로 풀어야 한다는 강박을 가지시기 보다는 적당히 정답을 보면서 연습하는 것이 오히려 더 좋은 전략이 될 수 있습니다. 어차피 최종 목표가 코딩 테스트를 볼 때 문제를 혼자서 해결하는 것이지 연습 과정에서도 반드시 그래야하는 것은 아니니까요.
제가 추천드리는 방법은 다음과 같습니다. 우선 30분이 됐든 1시간이 됐든 시간 제한을 두시고 혼자서 문제를 어떻게 해결할 수 있을지 골똘히 생각해보세요. 그리고 만약에 시간 내에 좋은 해결책이 떠오르시지 않으셨다면 미련없이 정답을 확인하여 문제를 해결한 후 다음 문제로 넘어가셔도 됩니다. 여기서 중요한 것은 아무래도 정답을 보고 푼 문제는 직접 해결하신 문제보다 기억에서 빨리 사라지기 때문에 반드시 기록을 해두시는 것입니다. 나중에 어느 정도 시간이 지나서 스스로 풀 수 있는지 한 번 더 확인해보시는 게 좋습니다.
이렇게 스스로 문제를 푸는데 걸리는 시간을 제한하는 방식이 효과적인 이유는 실제 코딩 테스트에서도 시간이 무한하게 주어지지 않기 때문입니다. 만약에 어떤 문제를 스스로 해결하시는데 1시간 이상 걸리셨다면, 그 문제는 실제 코딩 테스트에서 나오더라도 주어진 시간 내에 해결하시지 못하셨을 확률이 높았을 테니까요. 게다가, 제 경험상 1시간이 걸려서 혼자서 해결이 안 되는 문제는 몇 시간을 붙잡고 끙끙대도 해결이 안 되는 경우가 많더라고요.
막혔을 때 정답을 보고 문제를 빠르게 푸는 전략은 코딩 테스트가 얼마 남지 않았을 때도 매우 효과적일 수 있는데요. 이 기간에는 어떤 한 문제 한 문제에 너무 몰입하는 것보다는 최대한 많은 문제를 접해보는 것이 더 유리하거든요. 실제 코딩 테스트에서 본인이 시간을 많이 투자한 문제가 꼭 나올 거라는 보장은 없으니까요.
다시 질문으로 돌아가보면 문제를 스스로 풀지 않고 정답을 보셔도 괜찮습니다. 현재 본인 수준과 코딩 테스트가 얼마나 남았는지에 따라서 유연하게 접근하시면 좋을 것 같습니다.