function solution(w, h) { const total = w * h; const gcd = getGCD(w, h); return total - (w + h - gcd); } let getGCD = (num1, num2) => (num2 > 0 ? getGCD(num2, num1 % num2) : num1);
하나하나 그리다보니 삽질을 하다보니 최대 공약수의 규칙이 있었다. 그거로 해결함 최대공약수는 유클리드 호제법 + 재귀 함수로 구현한 것이다.
참고: https://velog.io/@devjade/JavaScript%EB%A1%9C-%EC%B5%9C%EB%8C%80%EA%B3%B5%EC%95%BD%EC%88%98GCD-%EC%B5%9C%EC%86%8C%EA%B3%B5%EB%B0%B0%EC%88%98LCM-%EA%B5%AC%ED%95%98%EA%B8%B0