프로그래머스 문제를 풀다가 최대공약수와 최소공배수 푸는 법을 간단하게 정리해 보았다.
(참고 문제: 최대공약수와 최소공배수)
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제와 예시
먼저 최대공약수는 for문을 돌리면서 주어진 두 숫자의 나머지를 0으로 만드는 최대 숫자를 구하는 방식을 사용하였다.
for (int i=1; i<=Math.min(n,m);i++) {
if (n%i==0 && m%i==0) {
answer[0] = i;
}
}
최소공배수는 두 수를 곱한 후 최대공약수로 나누는 방식을 사용하였다.
answer[1] = n*m/answer[0];
최대공약수를 사용하는 방법으로는 유클리드 호제 방식을 많이 사용한다고 하는데 해당 방식을 참고해 봐도 될 것 같다.
작성한 답변
public class Main {
public static void main(String[] args) throws IOException {
int n = 3;
int m = 12;
int[] answer = new int[2];
// 최대공약수
for (int i=1; i<=Math.min(n,m);i++) {
if (n%i==0 && m%i==0) {
answer[0] = i;
}
}
// 최소공배수
answer[1] = n*m/answer[0];
System.out.println("answer = " + Arrays.toString(answer));
}
}
'TIL (Today I Learned)' 카테고리의 다른 글
배열 복사 - Arrays.copyOfRange() (0) | 2024.04.08 |
---|---|
자바) 문자열이 숫자인지 확인하는 방법 (참고 프로그래머스 - 문자열 다루기) (0) | 2024.03.26 |
자바) 등차수열 가볍게 알아보자! (0) | 2024.03.26 |
자바) 배열을 문자열로 변환하는 방법 (char 배열 포함) (0) | 2024.03.25 |
Java에서 대소문자 크기 비교하기 (참고: 프로그래머스 - 자바 - 문자열 내림차순으로 배치하기) (0) | 2024.03.25 |