다희의 코딩 성장일기

[프로그래머스] level1. 최대공약수와 최소공배수 (자바 JAVA) 본문

Algorithm/프로그래머스

[프로그래머스] level1. 최대공약수와 최소공배수 (자바 JAVA)

ilmiodiario 2021. 8. 20. 12:54

[ 문제 ]  [프로그래머스] level1. 최대공약수와 최소공배수 (자바 JAVA)

 

문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/12940

 

코딩테스트 연습 - 최대공약수와 최소공배수

두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의

programmers.co.kr

 


# 접근 방법 및 풀이 

 

  • GCD = 최대공약수 , LCM = 최소공배수
  • 두수 n, m 중에 최소공배수는 n*m / GCD이다.
  • 따라서 최대공약수를 구하면 최소공배수를 위 공식으로 쉽게 구할 수 있다.
  • 최대 공약수는 두 수중에 작은 수까지 for문을 돌려 구할 수 있다.
  • for(int i = 1; i <= min; i++)로 해서, 두 수 다 i로 나누어 떨어진다면 i는 두 수의 약수이므로 최대공약수를 뽑을 수 있다.
  • 자세한건 코드참조.

# 주의할 점 

 

  • 딱히 없음

 

JAVA 코드
class Solution {
    public int[] solution(int n, int m) {
        int[] answer = new int[2];
        int small = (n <= m)? n:m;
        for(int i = 1 ; i <= small; i++){
            if(n%i == 0 && m%i==0)
                answer[0] = i;
        }
        answer[1] = n*m / answer[0];
        return answer;
    }
}

 

 

 

REVIEW

Comments