def solution(n):
answer = 0
lst = [False, False, True]+[True]*(n-2)
for i in range(2,n+1):
if lst[i]:
answer += 1
for jj in range(2,(n//i)+1):
lst[i*jj]=False
return answer
풀이
전에 아리.. 누구의 체를 본 것 같은데, 이 알고리즘이 딱 적절하다고 생각해서 사용했다.
True, False 리스트의 index를 사용해서 True인 index가 나타날 때, answer += 1을 수행하고 리스트 내 index의 배수들은 모두 False로 처리한다.