μ ν΄λ¦¬λ μκ³ λ¦¬μ¦ μ΄λ?
- 2κ°μ μ μ λλ λ λ€νμμ μ΅λ곡μ½μλ₯Ό ꡬνλ λ°©λ²μ΄λ€.
- μκ³ λ¦¬μ¦μ "A > B μΌλ Aμ Bμ μ΅λ곡μ½μλ Bμ λλ¨Έμ§ Rμ μ΅λ곡μ½μμ κ°λ€."
- ν° μ(A)λ₯Ό μμ μ(B)λ‘ λλλ€. ( A > B )
- λλ μ(B)λ₯Ό Aλ‘ λμ λλ¨Έμ§(R)μ Bλ‘ λμ νμ¬ κ³μ λλ μ€λ€. ( A(B) % B(R) = (R))
- λλ¨Έμ§κ° 0μ΄ λλ€λ©΄ μ΄μ μ Bμ λμ ν Rμ΄ μ΅λ곡μ½μμ΄λ€.
μμ
- 1071μ 1029λ‘ λλμ΄ λ¨μ΄μ§μ§ μκΈ° λλ¬Έμ, 1071μ 1029λ‘ λλ λλ¨Έμ§λ₯Ό ꡬνλ€. β« 42
- 1029λ 42λ‘ λλμ΄ λ¨μ΄μ§μ§ μκΈ° λλ¬Έμ, 1029λ₯Ό 42λ‘ λλ λλ¨Έμ§λ₯Ό ꡬνλ€. β« 21
- 42λ 21λ‘ λλμ΄ λ¨μ΄μ§λ€.
λ°λͺ©λ¬Έ
const gcd =(a,b){
let tmp;
while(b !== 0){ //bκ° 0μ΄ λ λκΉμ§
tmp = a % b;
a = b;
b = tmp;
}
return a;
}
μ¬κ·ν¨μ
const gcd(a,b) {
const remainder = a % b;
return b === 0 ? a : gcd(b, remainder);
}
- μ¬κ·ν¨μλ ν¨μ μμ μ λ΄λΆμμ λ€μ νΈμΆνλ κ΅¬μ‘°λ‘ λ§λ€μ΄μ§ ν¨μμ΄λ€.
- μ’ λ£μ‘°κ±΄μ΄ μλ€λ©΄ 무νλ°λ³΅μ νκ²λλ―λ‘ μ£Όμνμ.
μ΅μ곡배μ (LCM)
- μ΅μ곡배μ(LCM)λ μ΅λ곡μ½μ(GCD)λ₯Ό μμ©νλ©΄ ꡬν μ μλ€.
- μ΅μ곡배μλ LCM = (a * b) / GCD μ΄λ€.
- λ μμ κ³±μ μ΅λ곡μ½μλ₯Ό λλμ΄μ£Όλ©΄ μ΅μ곡배μκ° λμ¨λ€.
function solution(n, m) {
const gcd = (a, b) => (a % b === 0 ? b : gcd(b, a % b));
const lcm = (a, b) => (a * b) / gcd(a, b);
return lcm(n, m) // μ΅μ곡배μ
}
//μ½ν
μ€ν°λ νμλΆμ νλ‘κ·Έλλ¨Έμ€ νμ΄
'μκ³ λ¦¬μ¦ & λ¬Έμ νμ΄ > μκ³ λ¦¬μ¦' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
νμ μκ³ λ¦¬μ¦(Greedy Algorithm) (0) | 2022.09.06 |
---|---|
μλΌν μ€ν λ€μ€μ 체 (0) | 2022.09.04 |
μκ°λ³΅μ‘λ (Time Complexity) (4) | 2022.09.03 |