λ°μν
μμΈμλΆν΄
λ¬Έμ μ€λͺ
μμΈμλΆν΄λ μ΄λ€ μλ₯Ό μμλ€μ κ³±μΌλ‘ νννλ κ²μ λλ€. μλ₯Ό λ€μ΄ 12λ₯Ό μμΈμ λΆν΄νλ©΄ 2 * 2 * 3μΌλ‘ λνλΌ μ μμ΅λλ€. λ°λΌμ 12μ μμΈμλ 2μ 3μ λλ€. μμ°μ nμ΄ λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ nμ μμΈμλ₯Ό μ€λ¦μ°¨μμΌλ‘ λ΄μ λ°°μ΄μ return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄ μ£ΌμΈμ.
μ ν μ¬ν
- 2 ≤ n ≤ 10,000
μ μΆλ ₯ μ
n | result |
12 | [2, 3] |
17 | [17] |
420 | [2, 3, 5, 7] |
μ μΆλ ₯ μ μ€λͺ
μ μΆλ ₯ μ #1
- 12λ₯Ό μμΈμλΆν΄νλ©΄ 2 * 2 * 3μ λλ€. λ°λΌμ [2, 3]μ return ν©λλ€.
μ μΆλ ₯ μ #2
- 17μ μμμ λλ€. λ°λΌμ [17]μ return ν΄μΌ ν©λλ€.
μ μΆλ ₯ μ #3
- 420μ μμΈμλΆν΄νλ©΄ 2 * 2 * 3 * 5 * 7μ λλ€. λ°λΌμ [2, 3, 5, 7]μ return ν©λλ€.
μ μΆ
import Foundation
func solution(_ n:Int) -> [Int] {
var arr = Array(repeating: true, count: n+1)
var primes = [Int]()
for i in 2...n {
if arr[i] == true {
for j in stride(from: i, through: n, by: i) {
arr[j] = false
}
primes.append(i)
}
}
return primes.contains(n) ? [n] : primes.filter{n%$0 == 0}
}
μμμΈμ§ νλ³νκΈ° μν λ°°μ΄ arrμ μμλ₯Ό λ΄μ λ°°μ΄ primesλ₯Ό μ μΈνλ€.
iλ₯Ό 2λΆν° nκΉμ§ 1μ© μ¦κ°μν€λ©΄μ, arr[i]κ° trueλΌλ©΄ iμ λ°°μλ€μ arr κ°μ falseλ‘ λ°κΎΌ ν primes λ°°μ΄μ iλ₯Ό μΆκ°νλ€
μ΄ν primes ν¨μμ n μ΄ μλ€λ©΄, nμ΄ μμμ΄κΈ° λλ¬Έμ nμ λ°°μ΄μ λ£μ΄ λ°ννλ€
primes ν¨μμ nμ΄ μλ€λ©΄, filter ν¨μλ₯Ό μ¬μ©νμ¬ nμ λλ λλ¨Έμ§κ° 0μΈ κ°λ€μ λ°ννλ€
λ°μν
'β¨οΈ Language > swift' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[νλ‘κ·Έλλ¨Έμ€ LV.0] λ°°μ΄ μμμ κΈΈμ΄ (0) | 2022.12.30 |
---|---|
[νλ‘κ·Έλλ¨Έμ€ LV.0] 컨νΈλ‘€ μ νΈ (0) | 2022.12.30 |
[νλ‘κ·Έλλ¨Έμ€ LV.0] μ¨μ΄μλ μ«μμ λ§μ (1) (0) | 2022.12.30 |
[νλ‘κ·Έλλ¨Έμ€ LV.0] λ¬Έμμ΄ μ λ ¬νκΈ° (1) (0) | 2022.12.30 |
[νλ‘κ·Έλλ¨Έμ€ LV.0] λͺ¨μ μ κ±° (0) | 2022.12.30 |