[프로그래머스 - JS] LV.2 멀쩡한 사각형
♟ 풀이 순서
- 선에 걸리는 사각형의 갯수 = gcd * (w / gcd + (h / gcd - 1)) 이다.
- => w+h-gcd
- w 와 h의 최대공약수를 구한다.
- 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