def solution(n): number = [False, False] + [True] * n answer = [] for i in range(2, n+1) : if number[i] : answer.append(i) for j in range(2*i, n+1, i) : number[j] = False return len(answer)
풀이
★ 에라스토테네스의 체를 활용해야 효율성테스트를 통과할 수 있다. ★
2021.06.18 - [Algorithm/개념] - 에라토스테네스의 체(Eratosthenes' sieve )
에라토스테네스의 체(Eratosthenes' sieve )
에라토스테네스의 체(Eratosthenes' sieve ) 그리스의 수학자이자 지리학자인 에라토스테네스가 고안한 소수를 찾는 방법이다. 에라토스테네스의 체 알고리즘 1. 1부터 n까지의 자연수를 전부 나
wizdom.tistory.com
참고할만한 풀이
def solution(n): num=set(range(2,n+1)) for i in range(2,n+1): if i in num: num-=set(range(2*i,n+1,i)) return len(num)
set을 활용하여 차집합으로 문제를 해결하였다.
'Algorithm > Programmers' 카테고리의 다른 글
[Python] 여행 경로 (0) | 2021.06.28 |
---|---|
[Python] 네트워크 (0) | 2021.06.20 |
[Python] 압축 (0) | 2021.06.15 |
[Python] 방금 그 곡 (0) | 2021.06.14 |
[Python] 캐시 (0) | 2021.06.13 |