질문드립니다

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