별개로 else문을 쓰신 이유는 무엇인가요?
sieve.remove(k)는 shift연산이 일어나서 O(N)의 시간이 걸리는 작업입니다.
1929번 - 소수 구하기
별개로 else문을 쓰신 이유는 무엇인가요?
sieve.remove(k)는 shift연산이 일어나서 O(N)의 시간이 걸리는 작업입니다.
그러네요;
그래서 밑 부분을 이렇게 수정했는데도 같은 시간 초과가 나옵니다.
elif j < k: if k % j == 0: sieve.remove(k)
remove에 O(N)의 시간이 소요되어 똑같습니다.
보통 에라토스테네스의 체를 사용할 때 수의 범위의 bool 배열을 만들어서 소수가 아니면 False로 만들어주고 True인 경우 출력해주는 식으로 사용합니다.
댓글을 작성하려면 로그인해야 합니다.
yeslee5004 3년 전
에라토스테네스의 체를 이용해서 풀었는데 어떤 코드에서 시간이 초과되는건지 잘 모르겠습니다.