인프런 커뮤니티 질문&답변

김재영님의 프로필 이미지
김재영

작성한 질문수

코딩테스트 [ ALL IN ONE ]

[심화] 시간복잡도 Time Complexity

10의 8승 시간복잡도 근본적인 이유

해결된 질문

작성

·

1.2K

·

수정됨

1

안녕하세요 강사님.

코딩테스트를 준비하거나 시험을 치를 때 지켜야 하는 시간복잡도를 왜 10의 8승인건지 근본적인 이유를 알고 싶습니다.

그냥 이 시간복잡도를 일종의 (관행적인 느낌의) 마지노선으로 두는 것인지요..

 

답변 1

1

개발남노씨님의 프로필 이미지
개발남노씨
지식공유자

안녕하세요 재영님.

근본적인 이유는 코딩테스트 시험장에서의 제한조건 때문입니다.

 

한번 삼성 코딩테스트의 시간 제한 조건을 볼게요

 

imageimageimageimage

 

 

 

 

이렇게 1초 또는 2초정도로 되어있네요.

물론 코딩테스트마다 시간 제한은 다르겠지만 보통은 1초~10초 내외로 제한하는 편입니다.

 

그럼 보수적으로 실행시간을 1초 내로 줄여야 하는데,

사실 코테 서버의 CPU에 따라서 같은 코드라도 실행시간이 천차 만별이겠죠.

그래서 엄격하게 시간복잡도를 몇으로 해야된다 라는 것을 애초에 규정하기는 쉽지 않습니다.

하지만 대부분 관행적으로 10^8이내의 실행횟수에 대해서는 통과하도록 설계를 하는 편입니다.

 

제가 한번 제 컴퓨터에서 10^8의 실행횟수를 가진 코드를 실행해볼게요

image

보니까 약 1.78초 정도가 나오네요.

 

그래서 결론은 관행적으로 10^8을 지키면 통과한다~ 입니다.

 

 

좋은 질문 해주셔서 감사합니다.

혹시 풀리지 않은 의문점이 있으면 더 질문해주세요!

화이팅

김재영님의 프로필 이미지
김재영
질문자

답변 진심으로 감사드립니다.

김재영님의 프로필 이미지
김재영

작성한 질문수

질문하기