νλ‘κ·Έλλ¨Έμ€ μ΅λ곡μ½μμ μ΅μ곡배μ Swift
λ¬Έμ μ€λͺ
λ μλ₯Ό μ λ ₯λ°μ λ μμ μ΅λ곡μ½μμ μ΅μ곡배μλ₯Ό λ°ννλ ν¨μ, solutionμ μμ±ν΄ 보μΈμ. λ°°μ΄μ 맨 μμ μ΅λ곡μ½μ, κ·Έλ€μ μ΅μ곡배μλ₯Ό λ£μ΄ λ°ννλ©΄ λ©λλ€. μλ₯Ό λ€μ΄ λ μ 3, 12μ μ΅λ곡μ½μλ 3, μ΅μ곡배μλ 12μ΄λ―λ‘ solution(3, 12)λ [3, 12]λ₯Ό λ°νν΄μΌ ν©λλ€.
μ ν μ¬ν
- λ μλ 1μ΄μ 1000000μ΄νμ μμ°μμ λλ€.
μ μΆλ ₯ μ
n | m | return |
3 | 12 | [3, 12] |
2 | 5 | [1, 10] |
νμ΄:
μ΅λ곡μ½μλ₯Ό ꡬνλ λ²
nκ³Ό mμ€ μμ μ κΉμ§ λ°λ³΅νκ² νκ³ λ§μ½ nκ³Ό m λ λ€ λλ΄μ λ 0μ΄ λλ μκ° μμΌλ©΄ maxλΌλ λ³μλ₯Ό λ°κΏμ€λ€.
μ΅μ곡배μλ₯Ό ꡬνλ λ²
nκ³Όmμ€ μμ μλ‘ nμ λ°°μλ₯Ό λλ΄μ λ λλ¨Έμ§κ° 0μ΄λ©΄ λ°λ³΅μ μ€λ¨νκ³ minλ³μμ nμ λ°°μλ₯Ό λ£μ΄μ€λ€. μλλ©΄ μ°¨λ‘λ‘ 1μ© λν΄μ€λ€.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
func solution(_ n:Int, _ m:Int) -> [Int] {
var max = Int()
var min = Int()
var x = 1
if n > m {
for i in 1...m{
if n%i == 0 && m%i == 0{
max = i
}
}
while n*x%m != 0{
x += 1
}
min = n*x
return [max,min]
} else {
for i in 1...n{
if n%i == 0 && m%i == 0{
max = i
}
}
while m*x%n != 0{
x += 1
}
min = m*x
return [max,min]
}
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
|
λ€λ₯Έ μ¬λ νμ΄ μ€ μ’λ€κ³ μκ°νλ κ²
νμ΄: μ΅λ곡μ½μμ μ΅μ곡배μλ₯Ό ꡬνλ ν¨μλ₯Ό κ° κ° λ§λ€μλ€.
μ°μ μ΅λ곡μ½μλ₯Ό ꡬνλ ν¨μ aλ₯Ό bλ‘ λλ΄μ λ 0μ΄λΌλ©΄ a,bμ€ μμ μλ₯Ό λ°ν μλλΌλ©΄ bμ aλ₯Ό bλ‘ λλ κ°μ λ°μ¬λ¦Όν κ°μ λ€μ λ°λ³΅ν΄λΌ.
μ΅μ곡배μλ₯Ό ꡬνλ λ²μ μ΅λ곡μ½μλ‘ a,bλ₯Ό κ³±ν κ°μ λλ κ².
1
2
3
4
5
6
7
8
9
10
11
12
13
|
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)
}
func solution(_ n:Int, _ m:Int) -> [Int] {
return [gcd(n, m), lcm(n, m)]
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
|