1929번 - 소수 구하기
안녕하세요
답은 나오는거 같은데 자꾸 시간초과가 납니다
코드는 아래와 같고 에라토스테네스의 체를 구현하려고 하였습니다
먼저 max 길이의 2부터 자연수 배열을 만들고 2부터 각 수의 배수를 지어나가는 식으로 구현하였습니다
그리고 이 소수의 제곱이 max보다 커지게되면 배수를 따질 필요가 없으므로 while문을 빠져나오게 했습니다
시간을 더 줄여야할 부분은 자연수 배열을 만드는 for문이나 소수의 배수를 remove를 하는 방법을 고쳐야 하는것 같은데
정확히 어떤 부분이 잘못됐는지 모르겠네요
알려주시면 감사하겠습니다!
https://www.acmicpc.net/blog/v...ArrayList의 중간에 뭔가를 끼워넣고 빼는 건 O(N)입니다.
댓글을 작성하려면 로그인해야 합니다.
ehfkswl 5년 전
안녕하세요
답은 나오는거 같은데 자꾸 시간초과가 납니다
코드는 아래와 같고 에라토스테네스의 체를 구현하려고 하였습니다
먼저 max 길이의 2부터 자연수 배열을 만들고 2부터 각 수의 배수를 지어나가는 식으로 구현하였습니다
그리고 이 소수의 제곱이 max보다 커지게되면 배수를 따질 필요가 없으므로 while문을 빠져나오게 했습니다
시간을 더 줄여야할 부분은 자연수 배열을 만드는 for문이나 소수의 배수를 remove를 하는 방법을 고쳐야 하는것 같은데
정확히 어떤 부분이 잘못됐는지 모르겠네요
알려주시면 감사하겠습니다!