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?