프로그래밍응용/오답노트
프로그래머스, 최대공약수와 최대공배수(C++)
photoner
2021. 2. 23. 18:59
728x90
반응형
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
모든 문제 출제는 프로그래머스 ㅎㅎ
주어진 n과 m에 대해 최대공약수, 최소공배수를 리턴하는 문제이다.
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
|
#include <string>
#include <vector>
using namespace std;
vector<int> solution(int n, int m) {
vector<int> answer;
int gcd = 1, lcm = 0, tmp = 0;
if(n>m)
{
tmp = n;
n = m;
m = tmp;
}
for(int i=2; i<=n; i++)
if(n%i==0 && m%i==0)
gcd = i;
lcm = (n * m) / gcd;
answer.push_back(gcd);
answer.push_back(lcm);
return answer;
}
|
cs |
이게 짜증나는게 i를 2부터 증가시켜가면서, n<m일 때, 2부터 n 내에서 n과 m이 나머지가 0이 되는 수가 없을 때까지 나눈 후 계속해서 gcd와 lcm을 구해놨드만 lcm은 구하는 공식이 있었다. 뻘짓인가..;;
728x90
반응형