π μ½λ©ν μ€νΈ
βπ» Github
λ¬Έμ μ€λͺ
1λΆν° μ λ ₯λ°μ μ«μ n μ¬μ΄μ μλ μμμ κ°μλ₯Ό λ°ννλ ν¨μ, solutionμ λ§λ€μ΄ 보μΈμ.
μμλ 1κ³Ό μκΈ° μμ μΌλ‘λ§ λλμ΄μ§λ μλ₯Ό μλ―Έν©λλ€.
(1μ μμκ° μλλλ€.)
μ ν 쑰건
- nμ 2μ΄μ 1000000μ΄νμ μμ°μμ λλ€.
μ μΆλ ₯ μ
n | result |
10 | 4 |
5 | 3 |
μ μΆλ ₯ μ μ€λͺ
μ μΆλ ₯ μ #1
1λΆν° 10 μ¬μ΄μ μμλ [2,3,5,7] 4κ°κ° μ‘΄μ¬νλ―λ‘ 4λ₯Ό λ°ν
μ μΆλ ₯ μ #2
1λΆν° 5 μ¬μ΄μ μμλ [2,3,5] 3κ°κ° μ‘΄μ¬νλ―λ‘ 3λ₯Ό λ°ν
λ¬Έμ νμ΄
λμ νμ΄
import Foundation
func solution(_ n:Int) -> Int {
var primeArray = [Bool](repeating: true, count: n-1)
var i = 2
while i*i <= n {
if primeArray[i-2] {
stride(from:i*i, through: n, by: i).forEach{
primeArray[$0-2] = false
}
}
i += 1
}
return primeArray.filter{ $0 }.count
}
μ무리 νμ΄λ μκ°μ΄κ³Όκ° λμ μμλ₯Ό μ°Ύλ μνμ 곡μμ΄ μλ μΆμ΄μ μ°Ύμ보μλλ “μλΌν μ€ν λ€μ€μ 체”λΌλ μμλ₯Ό μ°Ύλ λΉ λ₯΄κ³ μ¬μ΄ λ°©λ²μ΄ μμλ€.
μλΌν μ€ν λ€μ€μ 체
μμλ₯Ό μ°Ύλ κ°μ₯ λΉ λ₯΄κ³ μ¬μ΄ λ°©λ²μΌλ‘ μλΌν μ€ν λ€μ€κ° λ°κ²¬ν 곡μμ΄λ€. λ°©λ²μ μλμ κ°λ€.
2λΆν° NκΉμ§μ λμ΄λ μκ° μλ€.
- μ¬κΈ°μ 2λ₯Ό μ μΈν 2μ λ°°μλ₯Ό μ°Ύμ μκ±°μν¨λ€. → κ²°κ³Ό : 2, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, …
- 2μ λ°°μλ₯Ό μκ±°μν¨ λ°°μ΄μμ 2μ κ·Έλ€μ μμΈ 3μ μ μΈν 3μ λ°°μλ₯Ό μ°Ύμ μκ±°μν¨λ€. → κ²°κ³Ό : 2, 3, 5, 7, 11, 13, 17, 19, 23, 25, 29, 31, …
- 2μ 3μ λ°°μλ₯Ό μκ±°μν¨ λ°°μ΄μμ 2μ 3 λ€μ μμΈ 5μ μ μΈν 5μ λ°°μλ₯Ό μ°Ύμ μκ±°μν¨λ€. → κ²°κ³Ό : 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, …
- 2μ 3κ³Ό 5μ λ°°μλ₯Ό μκ±°μν¨ λ°°μ΄μμ 2, 3, 5 λ€μ μμΈ 7μ μ μΈν 7μ λ°°μλ₯Ό μ°Ύμ μκ±°μν¨λ€. → κ²°κ³Ό : 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, …
- … 11
- … 13
- … 17
μ¬κΈ°μ λ§μ½ N μ΄ μκ±°μν€λ κ°μ μ κ³±λ³΄λ€ μλ€λ©΄, μκ±°μν¬ κ°μ΄ μ μΌλ―λ‘ μ’ λ£νλ€.
μλ₯Ό λ€μ΄ Nμ΄ 100μ΄λΌκ³ νμ λ 11μ μ κ³±μ 121μ΄λ―λ‘ 100μ μ΄κ³Όνλ€. κ·Έλ¬λ―λ‘ 7μ λ°°μκΉμ§λ§ μ°Ύμ μκ±°μμΌλ 1λΆν° 100κΉμ§μ μμκ°μ μ°Ύμ μ μλ κ²μ΄λ€.
κ·Έ μ΄λ€ λ°©λ²λ³΄λ€ μ΄ λ°©λ²μ΄ λΉ¨λκ³ , λλ μ΄ λ°©λ² κ·Έλ₯ μ΅λνμ¬ μΈμ°κΈ°λ‘ νλ€.
λ€λ₯Έ μ¬λ νμ΄
func solution(_ n:Int) -> Int {
var primes:[Bool] = [Bool](repeating:false, count:n+1);
var count = 0;
for i in 2...n {
if(!primes[i]){
count = count + 1;
}
for j in 1...(n/i) {
primes[i*j]=true;
}
}
return count;
}
μ΄ λΆμ λ°°μ΄μ λ§λ€μ΄λΈ λ€μ count λ₯Ό νμ§ μκ³ λ°λ³΅λ¬Έμ μ€ννλ©΄μ μμμ κ°―μλ₯Ό μΉ΄μ΄νΈ νμλ€. λ°°μλ₯Ό falseλ‘ λ§λλ κ³Όμ μ λ°λ³΅λ¬Έμ μ¬μ©ν΄ ꡬννμλ€.
μ€μν κ°λ
- μμλ₯Ό ꡬνκΈ° μν κ°μ₯ λΉ λ₯Έ λ°©λ²μ μλΌν μ€ν λ€μ€μ 체