MUKER_DEV with iOS

[swift] λ°±μ€€ - 1929번: μ†Œμˆ˜ κ΅¬ν•˜κΈ° λ³Έλ¬Έ

πŸ€– μ•Œκ³ λ¦¬μ¦˜/BAEKJOON

[swift] λ°±μ€€ - 1929번: μ†Œμˆ˜ κ΅¬ν•˜κΈ°

MUKER 2023. 2. 15. 17:56
 

1929번: μ†Œμˆ˜ κ΅¬ν•˜κΈ°

첫째 쀄에 μžμ—°μˆ˜ Mκ³Ό N이 빈 칸을 사이에 두고 주어진닀. (1 ≤ M ≤ N ≤ 1,000,000) M이상 Nμ΄ν•˜μ˜ μ†Œμˆ˜κ°€ ν•˜λ‚˜ 이상 μžˆλŠ” μž…λ ₯만 주어진닀.

www.acmicpc.net

문제 ν‘ΈλŠ” 데 μžˆμ–΄ 도움이 λ˜λ„λ‘ λ‚˜μ˜ 풀이와 κ°œμ„ λœ 풀이λ₯Ό μ˜¬λ¦½λ‹ˆλ‹€.
λ˜ν•œ 풀이 ν›„ λ‹€λ₯Έ μ‚¬λžŒμ˜ 풀이λ₯Ό 보고 μ°Έκ³ ν• λ§Œν•œ 풀이도 μ˜¬λ¦½λ‹ˆλ‹€.

- λ¬Έμ œμ— 따라 λ‚˜μ˜ ν’€μ΄λ§Œ μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.
- ν•΄λ‹Ή 풀이듀은 풀이 쀑 ν•˜λ‚˜μΌ 뿐 μ΅œμ„ μ˜ ν’€μ΄λŠ” 아닐 수 μžˆμŠ΅λ‹ˆλ‹€.

 


 

문제 μ„€λͺ…

 

- μ—¬λŸ¬κ°œμ˜ μ†Œμˆ˜λ₯Ό ν•œλ²ˆμ— νŒλ³„ν•  λ•ŒλŠ”
μ—λΌν† μŠ€ν…Œλ„€μŠ€μ˜ 체λ₯Ό μ‚¬μš©ν•˜λŠ”κ²Œ
μ‹œκ°„λ³΅μž‘λ„ λ©΄μ—μ„œ νš¨μœ¨μ μž…λ‹ˆλ‹€.

 


 

λ‚˜μ˜ 풀이

let MN = readLine()!.split(separator: " ").map { Int($0)! }
var arr = Array(0...MN[1])
var result = ""
for i in arr {
    if i == 0 || i == 1 { arr[i] = 0; continue }
    for j in stride(from: i * 2, through: MN[1], by: i) {
        arr[j] = 0
    }
}
for i in MN[0]...MN[1] {
    if arr[i] != 0 { result += "\(arr[i])\n"}
}
print(result)

 

- μ•½ 200ms의 μ‹œκ°„μ˜ κ±Έλ¦Ό

 


 

μ°Έκ³ ν• λ§Œν•œ 풀이

let MN = readLine()!.split(separator: " ").map { Int($0)! }
var arr = [Bool](repeating: true, count: 1000001)
var result = ""
arr[1] = false
for i in 2...1000 where arr[i] == true {
    for j in 2...1000000/i {
        arr[i*j] = false
    }
}

for i in MN[0]...MN[1] {
    if arr[i] {
        result += "\(i)\n"
    }
}
print(result)

 

- μ‹œκ°„λ³΅μž‘λ„ λ©΄μ—μ„œ μ’€ 더 μœ λ¦¬ν•œ μ½”λ“œ (μ•½ 40ms)