본문 바로가기
문제 풀이/프로그래머스 (Programmers)

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

by 희조당 2021. 4. 13.
728x90

programmers.co.kr/learn/courses/30/lessons/62048?language=java

 

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

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

programmers.co.kr


문제 접근

 1. 주어진 값들을 좌표평면에 위치시키고 w와 h을 x, y로 인식해서 1차함수로 해석한다.

 2. 좌표 상에 y값의 위치에 따라 칸을 센다.

 3. 대칭이기 때문에 값을 두배

느낀점

 처음에는 정말 감이 안 잡혀서 고민을 많이 했다. 다른 분의 코드를 찾아봤을 때 최대공약수로 푸는 분이 많으셔서 이해해보려고 노력했지만 좌표평면에 대입하는 방법이 이해하기 더 쉬웠다. 하지만 덕분에 유클리드 알고리즘을 공부한 계기가 되었다. 

코드

class Solution {
    public long solution(int w,int h) {
        long answer = 0;
        for(int i = 0; i < w; i++) 
            answer += ((long)h * i) / (long)w;
         
        return answer * 2;
    }
}

댓글