- 문제
- 회사에 본인보다 먼저 출근한 사람들에게만 빼빼로를 나눠주기로 하였음
- 빼빼로는 아몬드와 누드 2가지 종류를 준비하였음
- 빼빼로를 전부 소진해서 공평하게 나눠주는 방법을 모두 리턴
- 시도
- 수도코드
- 레퍼런스
function gcd(m, n) {
if (m % n === 0) return n;
return gcd(n, m % n);
}
function divideChocolateStick(M, N) {
const result = [];
const GCD = gcd(M, N);
let temp = 0;
const sqrt = Math.floor(Math.sqrt(GCD));
for (let left = 1; left <= sqrt; left++) {
if (GCD % left === 0) {
result.push([left, M / left, N / left]);
if (left * left < GCD) {
right = GCD / left;
result.push([right, M / right, N / right]);
}
}
}
result.sort((op1, op2) => op1[0] - op2[0]);
return result;
}