Programmers 62048 멀쩡한 사각형

로고 이미지

문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/62048

나의 풀이

image

좌측하단의 좌표를 (0, 0)이라고 생각하여 두 점 (0, h), (w,0) 을 지나는 직선을 구한다. \[y = - (h*x) / w + w\]

이 직선을 기준으로 정사각형의 개수를 알 수 있다.

나의 풀이에서는 y의 값에 따른 x값으로 정사각형의 개수를 구한다. \[x = w - (w*y)/h\]

y = h부터 1까지 위 식에 대입하여 y의 값에 따라 나타나는 x로 정사각형의 개수를 구한다.

풀이 코드 : 62048 멀쩡한 사각형

#include <cmath>

using namespace std;

long long solution(int w,int h) {
    long long answer = 0;
    for(int i = h;i>0;i--){
        answer += w - ceil((double)w*i/h);
    }
    answer *= 2;
    return answer;
}

채점결과

42587priter


© 2020. All rights reserved.

Powered by Hydejack v8.4.0