질문드립니다

kudus66 Reply 9 years 31 weeks ago
소스를 여러번 제출했는데요. 처음 제출한건 입력을 하나씩 실시간으로 입력하는 방법을 택했습니다. 입력 하나를 넣으면, 그에 대한 결과가 나오고 다시 입력 하나를 넣으면, 다시 그에 대한 결과가 나오는 방식으로요. 제 생각에는 틀린 점이 없는 코드같은데 wrong answer가 뜹니다. 그래서 혹시나 입력을, 0이 오기 전까지 한번에 쭉 입력받은 후, 결과도 한번에 쭉 나오게 해야하는건지.. 의문이 들어서 그렇게 했는데, 이번에는 time limit 초과가 뜨네요.. 타임오버가 걸릴만한 문제가 아닌데도요. 둘 중 어떤 방법으로 해야하나요? 그리고 그 어느 부분에서 wrong answer 또는 time limit 초과가 뜨는 것인지 확인 부탁드립니다.
kudus66 Reply 9 years 31 weeks ago
아, 두번째 방식은 (한번에 입력 후 한번에 출력) 맨 마지막에 제출한 소스가 해당합니다..
booksky Reply 9 years 31 weeks ago
안녕하세요. 조교 이은헌입니다. 유클리드 호제법을 사용하여 소수인지 아닌지 확인하셨습니다. 유클리드 호제법을 사용했기 때문에 잘못된 코드는 아닙니다. 알고리즘은 맞지만 지나치게 연산과정이 깁니다. 유클리드 호제법은 O(n)의 계산과정이 필요로 합니다. 그리고 1~n-1까지 유클리드 호제법을 계산하기 때문에 그 결과 전체 코드는 O(n^2)의 계산 과정을 필요로 합니다. O(n^2)보다 더 간단하게, 진짜 간단하게 풀 수 있습니다. 유클리드 호제법을 몰라도 풀 수 있습니다. 다른 방법을 생각해보시고 다시 도전해보시기 바랍니다. 그리고 한번에 출력하건 나눠서 출력하건 그 부분은 상관이 없습니다.