더북(TheBook)

잠깐만요

여기에서 이야기하는 1억은 절대적인 기준이 아닙니다. 시간 복잡도를 나타내는 빅오 표기법은 실행 시간이 어떤 요인으로 결정된다는 것을 나타낼 뿐, 정확한 실행 시간을 나타내는 것이 아닙니다. 따라서 실제 계산한 수치가 1억보다 작더라도 시간 제한에 걸릴 수 있습니다.

하지만 일반적으로 코딩 테스트 문제는 시간 복잡도를 이용하여 이와 같은 방법으로 계산하면 애매하게 1억 근처에서 계산되는 경우는 거의 없을 것입니다. 대부분 1억보다 한참 아래 값으로 계산되거나 풀이가 잘못되어도 1억을 훨씬 넘는 값으로 계산되기 때문에 1억을 일종의 커트라인으로 생각할 수 있습니다.

또 1억은 시간 제한이 1초인 문제일 때의 기준입니다. 시간 제한이 다른 문제에서는 해당 배수만큼 시간 복잡도를 곱하여 생각할 수 있습니다. 예를 들어 시간 제한이 3초로 나와 있는 문제는 3억 번으로 생각할 수 있습니다.

시간 제한이 걸려 있지 않은 문제라고 하더라도 대부분의 코드는 10초 이내에 실행 완료되어야 합니다. 따라서 시간 복잡도를 계산한 결과가 10억이 넘어간다면 반드시 다른 풀이를 생각해야 합니다.

풀이를 고안한 후 문제의 입력 조건을 시간 복잡도에 대입한 결과가 1억보다 큰 경우는 생각보다 매우 빈번히 발생합니다. 이 경우에는 풀이법이 문제를 충분히 효율적으로 해결하지 못하므로 다른 풀이를 찾아보아야 합니다.

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