algorithm/문제풀이
연습문제 > N개의 최소공배수
yongfront
2024. 6. 26. 17:32
반응형
SMALL
두수의 최대 공약수를 구하면
최소 공배수를 알 수 있다인데
수학적이기도하고 자력으로는 못풀어냈다
고대 그리스 수학자 유클리드가 제시한 유클리드 호제법을 이용한 풀이인데
호제법이란 서로를 나누는 방법이라는 뜻이다
유클리드 호제법을 이용해서 최대공약수를 구하고
최대공약수로 최소 공배수를 구한다
설명
- 유클리드 호제법을 사용한 최대공약수 구하기:
- gcd 함수는 두 수 a와 b의 최대공약수를 유클리드 호제법을 사용하여 구합니다.
- while (b !== 0) 루프를 통해 b가 0이 될 때까지 a % b의 값을 b에 대입하고, a는 b로 대체합니다.
- b가 0이 되면 a가 두 수의 최대공약수가 됩니다.
- 최소공배수 구하기:
- lcm 함수는 두 수 a와 b의 최소공배수를 (a * b) / gcd(a, b)로 계산합니다.
- 최대공약수를 구한 후, 이를 두 수의 곱에 나누면 최소공배수를 얻을 수 있습니다.
- 배열의 최소공배수 구하기:
- solution 함수는 배열 arr의 첫 번째 원소로 result를 초기화합니다.
- for 루프를 통해 배열의 두 번째 원소부터 마지막 원소까지 순회하면서 현재의 result와 배열의 현재 원소(arr[i])의 최소공배수를 계산하여 result에 저장합니다.
- 루프가 끝나면 result에는 배열 전체의 최소공배수가 저장됩니다.
유클리드 호제법을 사용하면 효율적으로 두 수의 최대공약수를 구할 수 있으며, 이를 바탕으로 여러 수의 최소공배수를 구하는 문제도 쉽게 해결할 수 있습니다.
728x90
반응형
LIST