백준 17087 숨바꼭질 6 (수학)

bkboy·2022년 6월 15일
0

백준 초급

목록 보기
68/80

문제

풀이

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));
  • 동생들의 위치에서 수빈이의 위치를 뺀 절댓값을 새로운 배열에 저장해주고 그 배열 요소의 최대공약수가 답이된다.
  • 입출력 예제를 보고 구하는 법을 알아냈다.
profile
음악하는 개발자

0개의 댓글