728x90
https://programmers.co.kr/learn/courses/30/lessons/12940?language=java
약간은 수학적 사고가 필요한 문제였습니다.
이게 왜 어려울까 싶으면서도 은근 고민을 많이 하게 되는 문제입니다.
import java.util.*;
class Solution {
public int[] solution(int n, int m) {
int[] answer = new int [2];
if(n > m){
if(n % m == 0){
answer[0] = m;
answer[1] = n;
}else{
for(int i = 1; i <= n; i++){
if(n % i == 0 && m % i == 0){
answer[0] = i;
}
}
answer[1] = n*m/answer[0];
}
}else if(n < m){
if(m % n == 0){
answer[0] = n;
answer[1] = m;
}else{
for(int i = 1; i <= m; i++){
if(n % i == 0 && m % i == 0){
answer[0] = i;
}
}
answer[1] = n*m/answer[0];
}
}
return answer;
}
}
먼저 n을 m으으로 나누었을때 나머지가 0이라면 더 볼것도 없이 최대공약수와 최소공배수를 알 수 있습니다.
하지만 그렇지 않을경우에는 구하는 공식과 같은 사고가 필요합니다.
728x90
'알고리즘 > Programmers' 카테고리의 다른 글
[Programmers]소수 찾기_자바 / 프로그래머스 연습문제(level 1) (0) | 2021.08.07 |
---|---|
[Programmers]두 개 뽑아서 더하기_자바 (0) | 2021.08.05 |
[Programmers]비밀지도_자바 - 2018 카카오 블라인드 (0) | 2021.08.03 |
[Programmers]실패율_자바 (0) | 2021.08.02 |
[Programmers]멀쩡한 사각형_자바 (0) | 2021.08.01 |