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
반응형

+ Recent posts