# ๋ฌธ์
https://school.programmers.co.kr/learn/courses/30/lessons/136798
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
# ๋ฌธ์ ์์ฝ
# ํต์ฌ ๊ฐ๋
์ซ์์ ์ฝ์ ๊ฐ์ ๊ตฌํ๊ธฐ
๋ง์ฝ 36์ด๋ผ๋ ์ซ์์ ์ฝ์๋ฅผ ๊ตฌํ ๋ (1,2,3,4,6,9,12,18,36) ์ด๋ ๊ฒ ๋์ด์๋ค
def cnt_prime(num):
result = 0
for i in range(1, num+1):
if num % i == 0:
result += 1
return result
๋ค์๊ณผ ๊ฐ์ ํํ๋ก ์ฝ์์ ๊ฐ์๋ฅผ ๊ตฌํ ์ ์์ผ๋ ์๊ฐ๋ณต์ก๋๊ฐ O(N)์ด ๋๋ค
36์ ์ฝ์๋ฅผ ์ดํด๋ณด์์๋ 36์๋ค๊ฐ ๋ฃจํธ๋ฅผ ์์ฐ๋ฉด 6์ด ๋๋ค
์ฆ 1~6๊น์ง๊ฐ ์๊ณ ๊ทธ ์ดํ์๋ ๋์นญ์ผ๋ก ๋์ด ์๋ค
์ ์ํ ์ ์ 6*6 = 36๊ณผ ๊ฐ์ ์ ๊ณฑ์์ผ ๊ฒฝ์ฐ count += 1์ ํด์ฃผ๊ณ
์ ๊ณฑ์๊ฐ ์๋ ๊ฒฝ์ฐ count += 2๋ฅผ ํด์ค ์ ์๋ค
def cnt_prime(num):
result = 0
for i in range(1, int(num**0.5)+1):
if num % i == 0:
if i*i == num:
result += 1
else:
result += 2
return result
์๊ฐ๋ณต์ก๋๋ O(N^(1/2)) ๊ฐ ๋๋ค
# ์ ๋ต ์ฝ๋
def cnt_prime(num):
result = 0
for i in range(1, int(num**0.5)+1):
if num % i == 0:
if i*i == num:
result += 1
else:
result += 2
return result
def solution(number, limit, power):
lst = [i for i in range(1,number+1)]
arr = []
for i in lst:
prime = cnt_prime(i)
if prime > limit:
prime = power
arr.append(prime)
return sum(arr)
# Reference
https://sohyeonnn.tistory.com/45
[ํ๋ก๊ทธ๋๋จธ์ค] ๊ธฐ์ฌ๋จ์์ ๋ฌด๊ธฐ Python ํ์ด(์ ๊ณฑ๊ทผ ์ด์ฉ)
๋ฌธ์ ๋งํฌ: https://school.programmers.co.kr/learn/courses/30/lessons/136798 ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถ
sohyeonnn.tistory.com