하루에 한 문제
[프로그래머스-lv2]N개의 최소공배수 -Java 본문
https://programmers.co.kr/learn/courses/30/lessons/12953
코딩테스트 연습 - N개의 최소공배수
두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배
programmers.co.kr
class Solution {
public int solution(int[] arr) {
int num1=arr[0];
for(int i=1; i<arr.length; i++){
int num2=arr[i];
int max=Math.max(num1,num2);
int min=Math.min(num1,num2);
num1=max*min/gcd(max,min);
}
return num1;
}
private int gcd(int max, int min){
while(min!=0){
int remain=max%min;
max=min;
min=remain;
}
return max;
}
}
소요시간 : 30분
IDE를 사용하지 않고 바로 작성할려니까 실수가 많네요..
gcd, lcm개념을 까먹어서 다시 복기한다고 조금 시간이 걸렸습니다..
gcd, lcm을 사용한다면 금방풀리는 문제입니다!!
gcd, lcm에 대한 설명은 여기!
유클리드 호제법(최소공약수, 최대공배수 구하기)
최소공약수 60과 24의 최소공약수를 구해보겠습니다. gcd(60,24) -> gcd(24,12) -> 12 1. gcd(60,24) 나머지 R : 60%24 = 12 B: 24 R: 12 2. gcd(B,R) -> gcd(24,12) 나머지 R : 24%12 = 0 ->-> 12 코..
dkwjdi.tistory.com
끝~~
'알고리즘 > 프로그래머스 lv2 다시풀기' 카테고리의 다른 글
[프로그래머스-lv2 Summer/Winter Coding(~2018)]스킬트리 -Java (1) | 2021.03.29 |
---|---|
[프로그래머스-lv2 2017팁스타운]짝지어 제거하기 (2) | 2021.03.24 |
[프로그래머스-lv2]타겟 넘버 -Java (0) | 2021.03.23 |
[프로그래머스-lv2 Summer/Winter Coding(~2018)]점프와 순간이동 -Java (0) | 2021.03.23 |
[프로그래머스-lv2 2018 KAKAO BLIND RECRUITMENT] n진수 게임 -Java (1) | 2021.03.21 |
Comments