풀이 방법만 알게된다면 상당히 쉬운 문제이지다.
using namespace std;
long long solution(int w,int h)
{
long long answer = 0;
for(long long i=1;i<w;i++) answer += i*h/w;
return answer*2;
}
문제 풀이의 핵심 개념은 비율이다. 사각형을 대각으로 쪼개었을때 나오는 삼각형에서의 정사각형의 개수를 구해 두배를 곱해서 리턴해줄것이다.
삼각형에서 비율은 w : h = i : 대각선이 지나가는 점 이게 되는데 이를 수식으로 변형하면
대각선이 지나가는 점 = h*i/w 이다.
결론적으로 대각선이 지나가는 점 보다 작은 정수의 값까지가 i에서의 정사각형 개수이다.