-
반응형
https://programmers.co.kr/learn/courses/30/lessons/12940
코딩테스트 연습 - 최대공약수와 최소공배수
두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의
programmers.co.kr
-풀이-
gcd알고리즘을 이용하여 최대공약수를 구한다. 그다음 n*m/gcd = 최소공배수를 이용하여 최소공배수도 구한다.
-시간복잡도-
모든 로직이 단순 계산이기때문에 O(1)이 된다.
-코드-
#include <string> #include <vector> using namespace std; int gcd(int a,int b){ if(b==0){ return a; } return gcd(b,a%b); } vector<int> solution(int n, int m) { vector<int> answer; if(n<m){ int temp=n; n=m; m=temp; } int _gcd=gcd(n,m); answer.push_back(_gcd); answer.push_back(n*m/_gcd); return answer; }
반응형'문제풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] [1차] 비밀지도 (0) 2021.06.19 [프로그래머스] 이름이 있는 동물의 아이디 (0) 2021.06.13 [프로그래머스] 소수 만들기 (0) 2021.06.07 [프로그래머스] [1차]다트 게임 (0) 2021.06.04 [프로그래머스] 실패율 (0) 2021.06.01 댓글