18 Fri
์์ ์ฐพ๊ธฐ
'''
https://programmers.co.kr/learn/courses/30/lessons/12921
์์ ์ฐพ๊ธฐ
[ํ์ด]
1. ์ ๊ณฑ๊ทผ๊น์ง ํ์
'''
def solution(n):
if n == 2: return 1
answer = 1
for i in range(3, n+1, 2):
prime = True
for j in range(3, int(i**0.5)+1):
if i % j == 0:
prime = not prime
break
if prime : answer += 1
return answer
'''
ํ
์คํธ 1 ใ ํต๊ณผ (3042.69ms, 10.3MB)
ํ
์คํธ 2 ใ ํต๊ณผ (2873.18ms, 10.2MB)
ํ
์คํธ 3 ใ ํต๊ณผ (2995.77ms, 10.4MB)
ํ
์คํธ 4 ใ ํต๊ณผ (2966.03ms, 10.5MB)
'''
'''
์์ ์ฐพ๊ธฐ๋ฅผ ํ ๋๋ ์๋ผํ ์คํ
๋ค์ค์ ์ฒด๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ํ์ดํ ์ ์๋ค.
๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๊ณผ ์๋๋ฅผ tradeoff ํด์ 10๋ฐฐ๊ฐ ์ ์ฉ๋จ
def solution(n):
num=set(range(2,n+1))
for i in range(2,int(n**0.5)+1):
if i in num:
num-=set(range(2*i,n+1,i))
return len(num)
ํ
์คํธ 1 ใ ํต๊ณผ (279.54ms, 117MB)
ํ
์คํธ 2 ใ ํต๊ณผ (271.73ms, 115MB)
ํ
์คํธ 3 ใ ํต๊ณผ (270.61ms, 116MB)
ํ
์คํธ 4 ใ ํต๊ณผ (274.70ms, 116MB)
'''
'''
์ ๊ณฑ๊ทผ ๋ฐฉ์์ ์ ์ฉํ์ง๋ง ๊ฐ๋จํ ์ฝ๋
all์ ์ด์ฉํด ํ๋๋ผ๋ n % i == 0์ด ๋์ค๋ฉด false๋ก ๊ฐ์ฃผํ๋ค
def is_prime(n):
return all([(n%j) for j in range(2, int(n**0.5)+1)]) and n>1
'''
Last updated
Was this helpful?