C++:: 프로그래머스 < 멀쩡한 사각형 >

jahlee·2023년 4월 26일
0

프로그래머스_Lv.2

목록 보기
39/106
post-thumbnail

풀이 방법만 알게된다면 상당히 쉬운 문제이지다.

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에서의 정사각형 개수이다.

0개의 댓글