💡Problem Solving/Programmers

[프로그래머스] 멀쩡한 사각형 (Java)

gom20 2021. 11. 30. 14:00

문제

https://programmers.co.kr/learn/courses/30/lessons/62048

 

코딩테스트 연습 - 멀쩡한 사각형

가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을

programmers.co.kr

 

풀이

y = h/w * x

아래와 같이 일차 방정식이라 생각하고 x의 값을 대입하면서, 소수점 값이 나오면 해당 소수점을 버리고 더해주었다. 

그러면 절반의 넓이에 해당하는 사각형 개수를 구할 수 있고, 여기에 2를 곱하면 답이 된다.

 

소스코드

class Solution {
    public long solution(int w, int h) {
        long answer = 0;
        double H = (double) h;
        double W = (double) w;

        for(int x = 1; x < w; x++){
            double r = H*x/W % 1;
            if(r == 0){
                answer += H*x/W;
            } else {
                answer += H*x/W - r;
            }
        }
        return answer*2;
    }   
}