-
https://programmers.co.kr/learn/courses/30/lessons/62048
코딩테스트 연습 - 멀쩡한 사각형
가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을
programmers.co.kr
좌표 평면 접근
let getGCD = (a, b) => (b > 0 ? getGCD(b, a % b) : a); let getYVal = (val) => -(y / x) * val + y; let x; let y; function solution(w, h) { var answer = 0; let GCD = getGCD(w, h); let num = 1; x = w / GCD; y = h / GCD; if(x === y) return w * h - h; count = 0; let pre = y; let xVal = 1; while(xVal <= x) { count += pre - Math.floor(getYVal(xVal)); pre = Math.ceil(getYVal(xVal)); xVal++; } while(1) { if(x * num === w) break; num++; } let total = num * count; answer = w * h - total; return answer; } console.log(solution(3,3));
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[Lv2] 배달 (0) 2021.06.26 [Lv2] 124 나라 숫자 (0) 2021.06.21 [Lv3] 입국심사 (0) 2021.06.16 [Lv2] 오픈채팅방 (0) 2021.06.14 [Lv3] 네트워크 (0) 2021.05.26 댓글