์์ง๋ ์์๋ ์ ์์ค! ์ญ์๋ ์๊ฐ์ด๊ณผ๋ก ๊ณ ์์ค์ด๋ค. ๊ตฌํํ๋๊ฑด ์ฝ์ง๋ง, ์ด์ ๊ทธ ์ด์์ ๋จ๊ณ๋ฅผ ์ค์ค๋ก ํํค์ณ๋ณด๊ณ ๊นจ๋ซ๊ธฐ ์ํด ๋ ธ๋ ฅํด์ผํ๋ค. ์ฐธ ์ด๋ ต๊ตฐ,,
๐ ๋ฌธ์
https://www.acmicpc.net/problem/1929
๐ ์ฒซ๋ฒ์งธ ํ์ด - ์๊ฐ์ด๊ณผ
private func solution() {
let nm = readLine()!.split(separator: " ").map{ Int($0)! }
for i in nm[0]...nm[1]{
var flag = false
for j in 2..<i {
if i % j == 0 {
flag = true
}
}
if !flag {
print(i)
}
}
}
solution()
2๋ถํฐ i๊น์ง ๋ชจ๋ for๋ฌธ์ ๋๋ ธ๋ค. ์ฌ๊ธฐ์ ๋ด๊ฐ ์ด์ ์ ํ์๋ ๋ฌธ์ ์ ๋ฌ๋ฆฌ, ๋ณด์ง ๋ชปํ ์กฐ๊ฑด์ด ์์๋ค. ๋ฐ๋ก,, ์์ฐ์ M๊ณผ N ์ 1000000๊น์ง,,,, ์ฃผ์ด์ง๋ค๋ ์ฌ์ค... ์ด๊ฒ๋๋ฌธ์ ์๊ฐ์ด๊ณผ๊ฐ ๋์ง ์์์๊น? 2์ด ์ ํ์ด ๊ต์ฅํ ํฐ ์ค ์์๋๋ฐ, ์ง๋๋ฒ ๋ฌธ์ ์ ๋ฌ๋ฆฌ ์์ฐ์์ ๋ฒ์๊ฐ ํจ์ฌ ์ปค์ก๊ธฐ ๋๋ฌธ์ ๊ฒฐ์ฝ ๊ธด ์๊ฐ์ ์๋์๋๋ณด๋ค.
(๋์ฒด ๋ฐฑ์ค์์ ์ด '๊ธธ๋ค', '์งง๋ค'์ ํ๋จ์ ์ด๋ป๊ฒ ํ๋๊ฑธ๊น?,, ์ด์ ์ผ ๋์ถฉ ์๊ฐ๋ณต์ก๋์ ๋น
Oํ๊ธฐ๋ฒ์ ๋ํด์๋ ์ตํ๋๋ฐใ
ใ
,, )
๐๐ปโ๏ธ ์๊ฐ์ ์ฌ๋ดค๋ค.
์ด์ ํฌ์คํ ์์ ์คํ์๋ ๊ด๋ จํด์ ๋ธ๋ก๊ทธ์ ์ง๋ฌธ์ ๋จ๊ฒผ์๋ค. ๊ฐ์ฌํ๊ฒ๋, iOS ๊ฒ์ํ๋ค๋ณด๋ฉด ๋ง์ด ๋์ค๋,, ์ ์ฃผ๋๊ป์ ๋ต๋ณ์ ์ฃผ์ จ๋ค. ๋ฐฑ์ค์ ์คํ์๋ ์ธก์ ์ด ์ ํํ์ง ์๊ธฐ ๋๋ฌธ์ ์ง์ ํด๋ด์ผํ๋ค๊ณ ํ์ จ๋ค. ๐ ์ ์ฃผ๋,,, ์ฒ์ฌ,,,,
๊ทธ๋์ ์์ผ๋ก๋ ์ง์ ์คํ์๋๋ฅผ ์ธก์ ํด๋ณด๋ ค๊ณ ํ๋ค!!
(์ธก์ ํด๋ณด๋,,) ๋ง๋์๋ผ,, i ๋ฅผ ๊ฑฐ์ ์ต๋์ซ์ 990000์ผ๋ก ์ฃผ๊ณ ๋๋ ค๋ณด์๋ค. ๋น๊ต๋ฅผ ์ํด์, ์ง๋๋ฒ์ ํ์๋ ๋ฌธ์ ์ ๊ฐ์ด '์ ๊ณฑ๊ทผ'์ ํ์ฉํ ๋ฐฉ๋ฒ๊ณผ ํจ๊ป ๋น๊ตํด๋ณด์๋ค. ๋๋์ง ์๋๋ค.. xcode..์ด์ ๋ฉ์ถฐ์ค ์ด ๋ฐฉ๋ฒ๋ง๊ณ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์๋ํด๋ด์ผ๊ฒ ๋ค..
import Foundation
public func progressTime(_ closure: () -> ()) -> TimeInterval {
let start = CFAbsoluteTimeGetCurrent()
closure()
let diff = CFAbsoluteTimeGetCurrent() - start
return (diff)
}
private func solution() {
let nm = readLine()!.split(separator: " ").map{ Int($0)! }
for i in nm[0]...nm[1]{
var flag = false
for j in 2..<i {
if i % j == 0 {
flag = true
}
}
if !flag {
// print(i)
}
}
}
private func solution2() {
let nm = readLine()!.split(separator: " ").map{ Int($0)! }
for i in nm[0]...nm[1]{
var flag = false
for j in 2..<Int(sqrt(Double(i))) + 1 {
if i % j == 0 {
flag = true
}
}
if !flag {
// print(i)
}
}
}
print(progressTime {
solution()
})
print(progressTime {
solution2()
})
๐ ๋๋ฒ์งธ ํ์ด - ์๋ผํ ์คํ ๋ค์ค์ ์ฒด ๋ฐฉ๋ฒ์ผ๋ก ํ๊ธฐ - ๋ง์์ต๋๋ค!
์ง์ xcode์์ ์ฐ์ฐ์ ํด๋ณด๋ ์ฒซ๋ฒ์งธ ์ฝ๋์์ ์๋ชป๋ ๋ถ๋ถ์ ์ฐพ์ ์ ์์๋ค. nm[0] ๋ถํฐ nm[1]๊น์ง ๋ชจ๋ ์์ ๋ํด์ ๊ฐ๊ฐ ํ๋ฒ์ฉ ๋ชจ๋ ์์ ํ๋ณ์ ๊ฑฐ์น๋ค๋ ์ ์ด ์๋ชป๋๋ค. ๋ง์ฝ, nm์ด ๊ฐ์ฅ ๋์ ๋ฒ์์ธ, 1๋ถํฐ 100๋ง๊น์ง ๊ฐ๋ค๊ณ ์ณ๋ณด์. ๊ทธ๋ผ ๋ฐฑ๋ง๋ฒ์ ์์ ํ๋ณ์ด ์ด๋ฃจ์ด์ ธ์ผํ๋ ๊ฒ์ด๋ค. ์ด ์ฐ์ฐ์ ์ต์ํํ๋ ๊ฒ์ด ๊ฐ์ฅ ํจ์จ์ ์ธ ๋ฐฉ๋ฒ์ผ ๊ฒ์ด๋ค.
์ด์ ํ์ด์์ ์ตํ๋, ์๋ผํ ์คํ ๋ค์ค์ ์ฒด ๋ฐฉ์์ ์ด์ฉํด๋ณด์. 100๋ง๊น์ง ๋ชจ๋ ์์ ๋ํ ์์ ํ๋ณ์ ๋ฏธ๋ฆฌ ํด๋ ๋ค, ์ ๋ ฅ๋ฐ์ ์์ ๋ํด์ ์์์ธ์ง ์๋์ง์ ๋ํ ์ฌ๋ถ๋ง ํ๋จํด์ ๋ฐ๋ก ์ถ๋ ฅํด์ฃผ์.
์ด ๋ฐฉ๋ฒ์ ์ค์ ์คํ์๋๋ฅผ ์ธก์ ํด๋ณด๋, ์ ์ ๋ฒ์์์๋ ์คํ์๋์ ์ฐจ์ด๊ฐ ๋์ง ์์์ง๋ง ์ญ์ ๋ฒ์๊ฐ ์ปค์ก์๋ ํจ์จ์ ์ธ ๊ฒ ๊ฐ์๋ค!!
private func solution3() {
let nm = readLine()!.split(separator: " ").map{ Int($0)! }
var isprimenum = Array(repeating: true, count: 1000001)
isprimenum[1] = false
for i in 2..<1000001 {
if isprimenum[i] == false {
continue
}
for j in stride(from: i+i, through: 1000000, by: i) {
isprimenum[j] = false
}
}
for k in nm[0]...nm[1] {
if isprimenum[k] == true {
print(k)
}
}
}
solution3()
์ง์ ~! ๋ง์๋ค. ์, ์ ์ฒซ์๋๋ ํ๋ ธ๋๋ฉด, 1์ ์ฒ๋ฆฌํด์ฃผ์ง ์์๊ธฐ ๋๋ฌธ~ ๐ ๊ธฐ์ตํ์ธ์ ์ฌ๋ฌ๋ถ 1์ ์์๊ฐ ์๋๋๋ค!
'Algorithm > Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] (Swift) 2309๋ฒ - ์ผ๊ณฑ๋์์ด (1) | 2022.12.28 |
---|---|
[๋ฐฑ์ค] (Swift) 6588๋ฒ - ๊ณจ๋๋ฐํ์ ์ถ์ธก (1) | 2022.12.27 |
[๋ฐฑ์ค] (Swift) 1978๋ฒ - ์์์ฐพ๊ธฐ (feat. ์ ๊ณฑ๊ทผ, ์๋ผํ ์คํ ๋ค์ค์ ์ฒด) ์ง๋ฌธ์์ต๋๋ค,,, ํ (2) | 2022.12.26 |
[๋ฐฑ์ค] (Swift) 2609๋ฒ - ์ต๋๊ณต์ฝ์์ ์ต์๊ณต๋ฐฐ์ (0) | 2022.12.25 |
[๋ฐฑ์ค] (Swift) 17425๋ฒ - ์ฝ์์ ํฉ (0) | 2022.12.23 |