[tip] 코딩테스트 단골 공식(LCM)

재오·2023년 6월 6일
16

JavaScript

목록 보기
34/48
post-thumbnail

최대공약수, 최소공배수를 구하는 문제는 유클리드 호제법을 이용하면 문제를 쉽게 해결할 수 있다. 우리가 sort()함수를 쓰는 것처럼 최대공약수와 최소공배수 문제를 해결할 때에는 최대공약수 공식을 암기하면 조금 유용할 것이다.

최대공약수 구하기

최대 공약수의 문제는 재귀함수를 호출하는 것이다.

const GCB = (a,b) => a%b ? GCB(b,a%b) : b;

최소공배수 구하기

최소 공배수의 문제는 최대 공약수로 구한 값으로 나눠주기만 하면 된다.

const LCM = (a,b) => a*b / GCB(a,b);

배열에 있는 값들의 최소공배수 구하기

배열에 있는 여러 개의 수들의 최소 공배수를 구하기 위해서는 JS의 reduce() 메서드를 이용하면 된다.

reduce() 메서드는 누산기 역할을 하는데 인자로 a와 b가 있다고 가정하면
array.reduce((a,b) => a+b)는 배열의 첫번째 원소와 둘째를 더한 값을 a에 할당하고 이제는 더한 값과 세번째 원소 값을 더한 값을 또 a에 더해가는 과정의 반복이다.

// 프로그래머스 lv.2 N개의 최소공배수 문제 인용

let array = [2,6,8,14];

array.reduce((a,b) => LCM(a,b));

이렇게 코드를 짜면 배열 4개의 최소공배수를 구할 수 있다.

profile
블로그 이전했습니다

2개의 댓글

comment-user-thumbnail
2023년 6월 7일

이 팁만 암기하면 카카오 코테 합격 가능한거죠 ?

1개의 답글