🔗 문제 LINK

♟ 풀이 순서

  • 선에 걸리는 사각형의 갯수 = gcd * (w / gcd + (h / gcd - 1)) 이다.
  • => w+h-gcd
  1. w 와 h의 최대공약수를 구한다.
  2. w*h - w+h-gcd 를 return 한다

👾 코드

const solution = (w, h) => {
  let gcd = 1;
  for (let i = 2; i <= Math.min(w, h); i++) {
    if (w % i === 0 && h % i === 0) {
      gcd = i;
    }
  }
  return w * h - w - h + gcd;
};

👀 코드 비교

  • 최대공약수를 구하는 다른 방식이 있었다.
     const gcd = (a, b) => {
          return b === 0 ? a : gcd(b, a % b);
      };
    
  • 기울기를 이용해 구하는 방법이 있었다. 생각하지 못한 방법이였다. 기울기를 구한 후 그 기울기 밑에 있는 상자들의 갯수를 구한 후 2를 곱해서 return 해주는 방식이였다.





Leave a comment