문제
풀이
const input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n');
const greatest = (a, b) => {
if (b === 0) return a;
return greatest(b, a % b);
};
const least = (a, b) => (a * b) / greatest(a, b);
const sol = (input) => {
const [N, S] = input.shift().split(" ").map(Number);
const arr = input[0].split(" ").map(Number);
let newArr = [];
arr.forEach((e, i) => {
newArr.push(Math.abs(e - S));
});
newArr.sort((a, b) => a - b);
let answer = newArr[0];
newArr.forEach((e, i) => {
answer = greatest(answer, e);
});
return answer;
};
console.log(sol(input));
- 동생들의 위치에서 수빈이의 위치를 뺀 절댓값을 새로운 배열에 저장해주고 그 배열 요소의 최대공약수가 답이된다.
- 입출력 예제를 보고 구하는 법을 알아냈다.