sjyoo1572   2년 전

에라토스테네스의 체를 통해 시간을 단축 시켜야 한다는 것은 이해 했습니다

그래서 저는 소수 리스트를 만들어서 접근을 해보고자 했습니다

 for문으로 소수 리스트 전부를 읽는과정에서 시간 초과가 나는건가요?

시간을 단축시킬 방법이 어떤게 있을까요 ㅠㅠ

ai4youej   2년 전

질문자님께서 올려주신 코드를 최대한 수정하지 않고 바꿔서 제출해보니, 맞았습니다!! 가 나왔습니다.

이 코드가 시간 초과가 나는 이유는 어떤 원소 i가 list 안에 존재하는지 확인하는데 걸리는 시간이 O(len(list)) 이기 때문입니다.

즉, 어떤 원소 i가 존재하는지 확인하는 시간이 O(1)이 걸리는 set 자료구조를 사용하면, 코드를 최대한 바꾸지 않고 문제를 해결할 수 있습니다.

(물론 set을 사용한다면 append 대신 add를 써야합니다.)

아래는 수정된 코드입니다.

추가로, 맞았습니다!!를 받으신 후에 다른 사람들의 코드를 보시는 것도 좋을 거 같습니다.

sjyoo1572   2년 전

이제 확인했네요 ㅜㅜ 정말 감사합니다!!

set 자료구조는 생소해서 잘 안 써봤는거 같은데 이런식으로 시간을 절약 할 수 있군요!

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