Algorithm/Mathematics

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

간지나제 2021. 4. 2. 22:56

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

 

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

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

programmers.co.kr

꽤 간단한 문제인데도 핵심을 잘 파악하지 못했다.

규칙을 찾는 문제라고 생각하고 규칙을 찾으려했는데 잘 찾아지지 않았다.

가로로 가능한 사각형만 셀 때 10, 9, 7, .. 이런식으로 되니까 뭔가 있지않을까라고 생각만했지

기울기..를 잘 생각하지 못했다.

 

수학이라고 생각하고 좌표로 바꿔 생각하면 정말 쉽게 풀 수 있는 문제.

그리고 형 변환에 대해서도 다시 생각하게 했는데

만약, h/w*i 이런식으로 순서를 바꾸면 값이 다르게 나온다.

이유는 int타입끼리 나누면 int값이 나오고 거기에 곱하는 격이니 소숫점을 아예 못쓰게된다.

미리 곱할 것들을 곱한 후에 나누면 원하는 정수를 얻을 수 있다.

 

 

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

'Algorithm > Mathematics' 카테고리의 다른 글

[프로그래머스] 124 나라의 숫자  (0) 2021.03.31