wjddydgns99   4년 전

맨 처음에 제 코드에서 for (int i = 0;; i++)

부분이, for (int i = 0;i<Factorial(num); i++)이었습니다. 근데 어째서 이게 시간초과고 무한루프가 통과하는 걸까요?전 시간복잡도는 똑같다고 생각했습니다. 




djm03178   4년 전

아니요, 이 코드에서 27번째 줄만 바꾸면 시간 초과가 안 납니다.

질문을 올릴 때는 반드시 틀린 코드를 한 글자도 다름없이, 그대로 복붙해서 올려주세요. 맞는 코드를 올려봐야 아무것도 봐드릴 게 없습니다.

지금처럼 맞는 코드를 올려놓고 틀린 코드와 다른 점을 말로 설명하면 꼭 실제로 제출한 것과 다른 부분이 생깁니다. 바로 51번째 줄입니다. 시간 초과가 난 코드에서는 "\n"이 아닌 endl이 쓰여 있습니다. 이 때문에 시간 초과가 나는 것이고, factorial(num)을 반복문에 쓴 것은 거의 아무런 영향이 없습니다.

wjddydgns99   4년 전

감사합니다. 덕분에 해결했습니다.

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