Foma's ํ์ด
ํต์ฌ: ์ต์๊ณต๋ฐฐ์๋ฅผ ๊ตฌํ ์ค ์๋๊ฐ?
๋จผ์ ์ต์๊ณต๋ฐฐ์๋ฅผ ๊ตฌํ๋ ๋ฐฉ๋ฒ์ ์ฌ๊ธฐ๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์
์ต์๊ณต๋ฐฐ์๋ฅผ ๊ตฌํ๋ ๋ฐฉ๋ฒ๋ง ์๋ฉด ์ด ๋ฌธ์ ๋ ๊ฐ๋จํฉ๋๋ค.
์ฒ์ ๋ ์ซ์์ ์ต์๊ณต๋ฐฐ์๋ฅผ ๊ตฌํ ๋ค์์ ๋ฐฐ์ด์์ ๊ทธ ๋ค์ ์ซ์์ ๊ทธ ์ต์๊ณต๋ฐฐ์์ ์ต์๊ณต๋ฐฐ์๋ฅผ ๊ตฌํด์ฃผ๋ฉด ๋ฉ๋๋ค!!
์ด๋ ๊ฒ ๋งํ๋ฉด ์ดํดํ๊ธฐ ํ๋๋ ์์ ๋ก ์ค๋ช ํ๊ฒ ์ต๋๋ค.
2,6,8,14๋ผ๋ ์ซ์๊ฐ ์๋ค๋ฉด ๋จผ์ ์ฒ์ ๋ ์ซ์ 2์ 6์ ์ต์๊ณต๋ฐฐ์๋ฅผ ๊ตฌํด์ค๋๋ค. -> 6
๊ทธ๋ฆฌ๊ณค ๋ฐฐ์ด์์ ๊ทธ ๋ค์ ์ซ์ 8๊ณผ ๋ฐฉ๊ธ ๊ตฌํด์คฌ๋ ์ต์๊ณต๋ฐฐ์์ธ 6์ ์ต์๊ณต๋ฐฐ์๋ฅผ ๊ตฌํด์ค๋๋ค -> 24
์ด๋ฐ ์์ผ๋ก ๋ฐ๋ณตํด์ฃผ๋ฉด ๋ง์ง๋ง์ 24์ 14์ ์ต์๊ณต๋ฐฐ์๊ฐ ์ ๋ต์ด ๋ฉ๋๋ค. -> 168
๋จผ์ ๋ฐฐ์ด์์ ์ฒซ๋ฒ์งธ๊ฐ๊ณผ ๋๋ฒ์งธ๊ฐ์ ์ต์๊ณต๋ฐฐ์๋ก ์ด๊ธฐ๊ฐ์ ์ค์ ํด์ค๋๋ค. -> var nLCM = lcm(arr[0], arr[1])
for๋ฌธ์ผ๋ก 2๋ถํฐ arrํฌ๊ธฐ๋งํผ ๋ฐ๋ณตํด์ฃผ๊ณ (2๋ถํฐ ํ๋ ์ด์ ๋ ์ฒซ๋ฒ์งธ์ ๋๋ฒ์งธ๋ ์ด๋ฏธ ์ต์๊ณต๋ฐฐ์๋ฅผ ๊ตฌํ์ผ๋ฏ๋ก) -> for i in 2..<arr.count{ ... }
nLCM์ ๊ทธ ์ ์ ์ต์๊ณต๋ฐฐ์์ ๋ค์ ์ซ์์์ ์ต์๊ณต๋ฐฐ์๋ฅผ ๊ตฌํด ๊ฐ์ ์ค์ ํด์ค๋๋ค. -> nLCM = lcm(nLCM, arr[i])
๋ง์ง๋ง nLCM์ ๋ฐํํด์ค๋๋ค. -> return nLCM
์ ์ฒด์ฝ๋
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
func solution(_ arr:[Int]) -> Int {
var nLCM = lcm(arr[0], arr[1])
for i in 2..<arr.count{
nLCM = lcm(nLCM, arr[i])
}
return nLCM
}
func gcd(_ a: Int, _ b: Int) -> Int {
let mod: Int = a % b
return 0 == mod ? min(a, b) : gcd(b, mod)
}
func lcm(_ a: Int, _ b: Int) -> Int {
return a * b / gcd(a, b)
}
|
๋ค๋ฅธ์ฌ๋ ํ์ด
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
func gcd(_ a: Int, _ b: Int) -> Int {
let r = a % b
if r != 0 {
return gcd(b, r)
} else {
return b
}
}
func lcm(_ m: Int, _ n: Int) -> Int {
return m / gcd(m, n) * n
}
func solution(_ arr:[Int]) -> Int {
return arr.reduce(1) { lcm($0, $1) }
}
|
๋ฐฐ์ด ๊ฒ
์ ๊ฐ์ ๊ฒฝ์ฐ์ for๋ฌธ๊ณผ nLCM์ด๋ผ๋ ๋ณ์๋ฅผ ๋ง๋ค์ด์ ๊ฐ์ ๊ตฌํ์ง๋ง
๋ค๋ฅธ ์ฌ๋์ ํ์ด๋ฅผ ๋ณด๋ ๊ฐ๋จํ๊ฒ reduce๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋จํ๊ฒ ๊ตฌํํ ์ ์์์ต๋๋ค.
'๐ Problem Solution > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค ์ ํ์ ์๊ฐ์ด๋ Swift (0) | 2020.10.16 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค JadenCase ๋ฌธ์์ด ๋ง๋ค๊ธฐ Swift (0) | 2020.10.10 |
ํ๋ก๊ทธ๋๋จธ์ค ํผ๋ณด๋์น ์ Swift (0) | 2020.10.09 |
ํ๋ก๊ทธ๋๋จธ์ค ํ๋ ฌ์ ๊ณฑ์ Swift (0) | 2020.10.05 |
2019 KAKAO BLIND RECRUITMENT ์คํ์ฑํ ๋ฐฉ Swift (0) | 2020.09.24 |
๋๊ธ