amatuer789   5년 전

시간 복잡도 계산할 때, 1초가 1e8이라고 들었는데요.

n = 200인 문제에서 80ms를 예상했는데 8ms(0.008s)가 나왔다면,

플로이드 코드가 간결해서 빨라진건가요 ?? n이 max인 case가 없는건가요??

djm03178   5년 전

1초에 1e8이라는 건 대략 그 정도 복잡도의 코드면 괜찮을 거라는 뜻이고, 실제로는 같은 복잡도 내에서도 실행되는 연산의 수에 따라 천차만별이 됩니다. 단순한 연산만으로 치면 초당 2e9개 정도의 문장도 실행이 가능합니다.

amatuer789   5년 전

여지껏 1초를 1e8기준으로 하고, 상대적 수치로 계산하는줄 알았네요.

그러면 문제를 푸실 때, 그런 환경 차이(코드의 간결성에 따른 차이)까지도 생각하셔서

time-complexity가 일부 초과하더라도 제출해볼 수 있는건가요??

아니면

문제 자체에서 그렇게 제시하지는 않나요??

djm03178   5년 전

대개의 문제는 의도된 시간복잡도라면 코드 자체는 그다지 효율적이지 않더라도 충분히 통과될 수 있는 수준으로 만듭니다. 시간복잡도가 나쁘다면 아무리 최적화를 하더라도 통과하기 어려운 수준으로 만들고요. 이 차이를 구분짓기 어려워 시간 제한을 빡세게 만드는 문제들도 있는데 그런 경우 최적화를 잘 하는 방법도 생각을 해봐야 합니다.

amatuer789   5년 전

도움 많이 됐습니다. 답변 감사합니다~

댓글을 작성하려면 로그인해야 합니다.