2021. 5. 20. 14:52ใ๐ง๐ป๐ป iOS ๊ฐ๋ฐ/Swift - Algorithm - Solutions
๋ฌธ์ ํด์
N๊ฐ์ ์ซ์๋ฅผ ๋ด์ ๋ฐฐ์ด์ด ์ฃผ์ด์ก์ ๋ ์ด ์๋ค์ ์ต์ ๊ณต๋ฐฐ์๋ฅผ ๊ตฌํ๋ ํจ์๋ฅผ ์์ฑํ๋ ๋ฌธ์ ์์ต๋๋ค.
๋ฐฐ์ด์ ์๋ค์ 100 ์ดํ์ธ ์์ฐ์์ด๊ณ ๋ฐฐ์ด์ ๊ธธ์ด๋ 1๋ถํฐ 15 ์ดํ๋ผ๊ณ ํฉ๋๋ค.
์ฌ๋ฌ ์์ ์ต๋ ๊ณต๋ฐฐ์๋ฅผ ๊ตฌํ๊ธฐ ์ํด ๋จผ์ ๋ ์์ ์ต๋ ๊ณต๋ฐฐ์๋ฅผ ๊ตฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ด ์๋ค.
๋ ์ a, b์ ์ต์๊ณต๋ฐฐ์๋ ๋ ์์ ๊ณฑ์ ๋ ์์ ์ต๋ ๊ณต์ฝ์๋ก ๋๋์ด ์ฃผ์ด์ ๊ตฌํ ์ ์๋ค๋๊ตฐ์.
๋ ์์ ์ต๋ ๊ณต์ฝ์๋ ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ์ ์ด์ฉํ์ฌ ์ฝ๊ฒ ๊ตฌํ ์ ์์ต๋๋ค.
์ด๋ฅผ ์ด์ฉํ์ฌ ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ์์์ ๋ ๋ฒ์งธ ์์์ ์ต์ ๊ณต๋ฐฐ์๋ฅผ ๊ตฌํ๊ณ ๊ตฌํ ์ต์ ๊ณต๋ฐฐ์์ ๊ทธ๋ค์ ์์์์ ์ต์๊ณต๋ฐฐ์๋ฅผ ๋น๊ตํ์ฌ ์ ์ฒด N๊ฐ์ ์์ ์ต์ ๊ณต๋ฐฐ์๋ฅผ ๊ตฌํ๋ ๋ฐฉ์์ผ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค.
๋ ์๊ฐํด๋ณด๊ธฐ
์ฃผ์ด์ง ๋ฐฐ์ด์์ 100 ์ดํ์ ์์ฐ์์ธ ์์๊ฐ ์ต๋ 15๊ฐ ์กด์ฌํ๋ค๋ฉด, ์ต์ ๊ณต๋ฐฐ์๊ฐ ๊ฐ์ฅ ํฐ ๊ฐ์ 100์ดํ์ ๊ฐ์ฅ ํฐ ์์ 15๊ฐ์ ๊ฐ์ ๊ณฑ์ด๋ผ๊ณ ์๊ฐํ ์ ์์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด ๊ทธ ์๋ค์ [31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]๊ฐ ๋ ๊ฒ์ ๋๋ค. ์ด๋ค์ ๊ณฑ์ 3.5636434e+26์ผ๋ก Int์ ์ต๋๊ฐ์ธ 9.2233e+18์ ํ์ฉ ๋ฐ์ด๋์ต๋๋ค. ํ์ง๋ง ๋ฌธ์ ์์๋ ๋ฆฌํด ๊ฐ์ Intํ์ผ๋ก ์ ํด์ฃผ์๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ์์ธ์ํฉ์ ์ ์ธํ๊ณ ๊ฐ์ ๊ตฌํ๋ผ๋ ์๋ฏธ ๊ฐ์ต๋๋ค. ๋ง์ฝ ๋ค๋ฅธ ๋ฌธ์ ์์ ์ถ๊ฐ์ ์ธ ์กฐ๊ฑด์ด ์๋ ์ํฉ์ด๋ฉด ์๋ฃํ์ ํ์ ์ ์ ํ๋จํ์ฌ ๊ณ์ฐํด๋ณด๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.
๋ฌธ์ ํ์ด & ์ฝ๋
func solution(_ arr:[Int]) -> Int {
// ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ์ ํตํด ์ต๋๊ณต์ฝ์๋ฅผ ๊ตฌํ๋ ํจ์
func gcdOfTwoNumbers(_ a: Int, _ b: Int) -> Int {
let r = a % b
if r != 0 {
return gcdOfTwoNumbers(b, r)
} else {
return b
}
}
// ์ต์ ๊ณต๋ฐฐ์๋ฅผ ๊ตฌํ๋ ํจ์
func lcmOfTwoNumbers(_ a: Int, _ b: Int) -> Int {
return a * b / gcdOfTwoNumbers(a, b)
}
// 1๊ณผ ์๊ธฐ์์ ์ ์ต์ ๊ณต๋ฐฐ์๋ ์๊ธฐ ์์ ์์ผ๋ก 1๋ก ์ด๊น๊ฐ์ ์ค์ ํ๊ณ
// reduce๋ก ๊ฐ์ ๊ณ์ฐ
return arr.reduce(1){lcmOfTwoNumbers($0, $1)}
}
์ฐธ๊ณ
- ๋๋ฌด ์ํค: ์ต์๊ณต๋ฐฐ์, ์ต๋๊ณต์ฝ์, ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ
'๐ง๐ปโ๐ป iOS ๊ฐ๋ฐ > Swift - Algorithm - Solutions' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift - ํ๋ก๊ทธ๋๋จธ์ค] [3์ฐจ] n์ง์ ๊ฒ์ (0) | 2021.05.27 |
---|---|
[Swift - ํ๋ก๊ทธ๋๋จธ์ค] [3์ฐจ] ํ์ผ๋ช ์ ๋ ฌ (0) | 2021.05.25 |
[Swift - ํ๋ก๊ทธ๋๋จธ์ค] ๊ฐ์ฅ ํฐ ์ ์ฌ๊ฐํ ์ฐพ๊ธฐ (0) | 2021.05.22 |
[Swift - ํ๋ก๊ทธ๋๋จธ์ค] ๋ฐฐ๋ฌ (0) | 2021.05.19 |
[Swift - ํ๋ก๊ทธ๋๋จธ์ค] ๋ด์ค ํด๋ฌ์คํฐ๋ง (0) | 2021.05.19 |