더북(TheBook)

하나 더 해봅시다. 4n2 + 4n의 소요 시간을 가진 함수가 있다고 가정하고, 입력 숫자는 5,000개라고 한다면, 빅오 표기법은 O(n2)이 되므로 매우 여유롭게 통과할 수 있을 것 같습니다. 그러나 실제 연산량은 1억을 아주 조금 넘는 수치이며 굉장히 아슬아슬하거나 또는 아깝게 통과하지 못합니다. 이럴 경우 추가로 코드를 수정해야 한다는 의미로 이해하면 됩니다.

이처럼 단순히 빅오 표기법으로 상한선만 긋고 판단하는 것보다는 조금 더 정확하게 숫자로 계산할 수 있으면 훨씬 좋습니다. ‘여러 함수를 사용하면서 정말 괜찮을까?’에 대한 의문을 깔끔하게 지울 수 있죠.

당연히 효율적인 코드로 통과하는 것이 제일 확실하고 모범적인 방법이지만, 코딩 테스트 순위권을 노리는 것이 아니라면 통과하는 것이 먼저이기 때문에 효율에 집착할 필요가 없습니다. 오히려 역으로 어느 정도까지 통과할 수 있는지 파악하고, 자신에게 가장 익숙한 알고리즘으로 코드를 짜면서 최대한 체력을 덜 쓰고 가능한 한 많은 문제를 푸는 것이 전략이 될 수도 있습니다. 코딩 테스트는 한 문제가 아니라 여러 문제가 나오니까요.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.