반응형
문제는 다음과 같습니다.
코딩테스트 연습 - 최대공약수와 최소공배수 | 프로그래머스 (programmers.co.kr)
코딩테스트 연습 - 최대공약수와 최소공배수
두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의
programmers.co.kr
풀이 코드는 다음과 같습니다.
#include <string>
#include <vector>
using namespace std;
vector<int> solution(int n, int m) {
vector<int> answer;
int GND=0;
for(int i{n};i>0;i--)
{
if(n%i==0&&m%i==0)
{
GND=i;
break;
}
}
answer.push_back(GND);
answer.push_back(n*m/GND);
return answer;
}
최소공배수만 구한다면 어렵지 않게 풀 수 있으며, 최소공배수의 경우에는 어쩔 수 없이 1 이상이면서 주어진 수 보다는 작은 (1≤x≤n) 중에서 주어진 두 수를 나누어서 나머지가 0인 수를 찾아주었고
최소공배수의 경우에는 중학교 수학에서 배운 공식인
최소공배수와 최대공약수의 곱은 두 수의 곱과 같음을 이용하여 구할 수 있습니다.
반응형
'프로그래머스 Lv.1 코딩테스트' 카테고리의 다른 글
[연습문제] 짝수와 홀수 (0) | 2022.02.16 |
---|---|
[프로그래머스 Lv.1] K번째 수 (0) | 2022.02.16 |
[프로그래머스 Lv.1] 제일 작은 수 제거하기 (0) | 2022.02.16 |
[프로그래머스 Lv.1] 콜라츠 추측 (0) | 2022.02.16 |
[프로그래머스 Lv.1] 평균 구하기 (0) | 2022.02.09 |