λ¬Έμ μ€λͺ
λ μλ₯Ό μ λ ₯λ°μ λ μμ μ΅λ곡μ½μμ μ΅μ곡배μλ₯Ό λ°ννλ ν¨μ, solutionμ μμ±ν΄ 보μΈμ. λ°°μ΄μ 맨 μμ μ΅λ곡μ½μ, κ·Έλ€μ μ΅μ곡배μλ₯Ό λ£μ΄ λ°ννλ©΄ λ©λλ€. μλ₯Ό λ€μ΄ λ μ 3, 12μ μ΅λ곡μ½μλ 3, μ΅μ곡배μλ 12μ΄λ―λ‘ solution(3, 12)λ [3, 12]λ₯Ό λ°νν΄μΌ ν©λλ€.
μ ν 쑰건
- λ μλ 1μ΄μ 1000000μ΄νμ μμ°μμ λλ€.
μ μΆλ ₯ μ
n | m | return |
3 | 12 | [3, 12] |
2 | 5 | [1, 10] |
λ΄ λ¬Έμ νμ΄
func solution1(_ n:Int, _ m:Int) -> [Int] {
var max = 0 // μ΅λ곡μ½μ
var a = 0 // μ
λ ₯λ°μ μ μ€μ λ ν° μ
// λ ν° μλ₯Ό λ³μ aμ λ£μ
if n > m {
a = n
}
else {
a = m
}
// μ΅λ곡μ½μ ꡬνλ λ°λ³΅λ¬Έ
// λ ν° μ aκ° 0μ΄ λ λκΉμ§ 1μ© -νλ©° n, mμ aλ‘ λλ 보λ€κ° λ μ λͺ¨λ λλ λ¨μ΄μ§ λ μ’
λ£
while a > 0 {
if (n%a == 0 && m%a == 0) {
max = a
break
}
else {
a -= 1
}
}
// λ°λ³΅λ¬Έμ ν΅ν΄ ꡬν μ΅λ곡μ½μ, κ·Έλ¦¬κ³ μ΅λ곡μ½μλ₯Ό μ΄μ©ν μ΅μ곡배μ ꡬνλ 곡μμ μ¬μ©νμ¬ λ°°μ΄ λ¦¬ν΄
return [max, n*m/max]
}
- μ λ ₯λ°μ λ μμ€μ ν° μλ₯Ό νλ³νκ³ , μ΅λ곡μ½μλ₯Ό ꡬν λ€μ μ΅μ곡배μλ μ΅λ곡μ½μλ₯Ό μ΄μ©ν 곡μμΌλ‘ ν΄κ²°νλ€.
- μ΅λ곡μ½μλ ν° μ aλΆν° μ λ ₯ λ°μ λ μλ₯Ό λλ 보λ€κ° λ μ λͺ¨λ λλ λ¨μ΄μ§ λλ₯Ό ꡬνλ€.
π‘ νΌλλ°±
- μκ°ν΄λ³΄λ κ΅³μ΄ ν° μλ‘ λλμ§ μκ³ μμ μλΆν° λλ λ κ°λ₯νλ°,, κ·Έλ κ² νλ©΄ ν¨μ¨μ΄ ν¨μ¬ μ’μμ§λ€.
π [ μΆκ° ] 1μ£ΌμΌ ν λ€μ νμ΄λ³΄κΈ°
func solution(_ n:Int, _ m:Int) -> [Int] {
var min = 0
var max = 0
if n > m { max = n; min = m }
else { max = m; min = n }
var gcd = min
while gcd != 1 {
if max % gcd == 0 && min % gcd == 0 {
break
}
gcd -= 1
}
return [gcd, m*n/gcd]
}
- λ μμ€ λ μμ μλ‘ λ μλ₯Ό λλ μ£Όλ©° λͺ¨λκ° λλ λ¨μ΄μ§ λ μ΅λ곡μ½μλ₯Ό ꡬνλ€.
- 첫 λ²μ§Έλ‘ νμλ μ½λλ³΄λ€ ν¨μ¬ κ°κ²°νκ² μ νΌ λ― νλ€.
βπ [ λ! μΆκ° ] 1μ£ΌμΌ ν λ λ€μ νμ΄λ³΄κΈ°
func solution(_ n:Int, _ m:Int) -> [Int] {
var gcd = 0
var min = 0
n > m ? (min = m) : (min = n)
for i in (1...min).reversed() { if n%i==0 && m%i==0 { gcd = i; break } }
return [gcd, (n*m)/gcd]
}
- λ‘μ§μ κ±°μ λΉμ·νμ§λ§ if, else λμ μΌνμ°μ°μλ₯Ό μ¬μ©νκ³ , while λμ reversed λ©μλλ₯Ό μ΄μ©ν΄μ forλ¬ΈμΌλ‘ λ°λ³΅λ¬Έμ λλ Έλ€.
- κ°λ μ±λ ν¨μ¬ μ’κ³ λ§€μ° κ°κ²°ν΄μ‘λ€.
λ¬Έμ
'3οΈβ£ Swift > Problem Solving' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Swift Algorithm] μμ°μ λ€μ§μ΄ λ°°μ΄λ‘ λ§λ€κΈ° Programmers(Lv.1) (0) | 2021.06.14 |
---|---|
[Swift Algorithm] μ½λΌμΈ μΆμΈ‘ Programmers(Lv.1) (0) | 2021.06.14 |
[Swift Algorithm] μ§μμ νμ Programmers(Lv.1) (0) | 2021.06.07 |
[Swift Algorithm] μ μΌ μμ μ μ κ±°νκΈ° Programmers(Lv.1) (0) | 2021.06.07 |
[Swift Algorithm] μ μ μ κ³±κ·Ό νλ³ Programmers(Lv.1) (0) | 2021.06.07 |
λκΈ