반응형
주어진 a와 b값의 최소공배수를 구하는 문제이다.
최소공배수는 a와 b의 공배수 중 가장 작은 수이므로 단순히 두 수중 큰 수부터 시작하여 하나씩 비교하는 방식으로 쉽게 구할 수 있다.
위와 같이 먼저 a와 b의 값을 비교하여 큰 수를 b쪽에 두고, while문을 이용하여 b값을 시작값으로 두고 1씩 증가시키면서 조건(공배수)을 만족시키는 값을 찾을 수 있다.
다만 이렇게 구하게 되면 시간이 굉장히 오래걸리기 때문에 위와 같은 코드로 제출하게 되면 시간 초과라는 오류가 발생하게 된다.
따라서 조금 다른 방식으로 구해보았다.
최소공배수는 두 수의 곱 / 최대공약수 로 구할 수 있기 때문에 먼저 최대공약수를 구한다.
최대공약수는 1부터 두 수중 작은 수까지로 한정되어 있기 때문에 비교적 짧은 시간에 값을 구할 수 있다.
구한 최대공약수를 두 수의 곱에 나누어주면 우리가 원하는 값인 최소공배수를 얻을 수 있다.
반응형
'Java > 백준알고리즘' 카테고리의 다른 글
백준알고리즘 #9461 파도반수열 Java (0) | 2020.12.24 |
---|---|
백준알고리즘 #2869 달팽이는 올라가고 싶다 Java (0) | 2020.12.18 |
백준알고리즘 #2609 최대공약수와 최소공배수 Java (0) | 2020.12.09 |
백준알고리즘 #15596 정수 N개의 합 Java (0) | 2020.12.09 |
백준알고리즘 #1929 소수 구하기 java (에라토스테네스의 체) (0) | 2020.12.08 |