[프로그래머스] 멀쩡한 사각형
[프로그래머스] 멀쩡한 사각형
#include <algorithm>
using namespace std;
long long GCD(long long a, long long b){
if(a % b == 0) return b;
return GCD(b, a % b);
}
long long solution(int w, int h) {
long long new_w = w;
long long new_h = h;
long long answer = 1;
long long total = new_w * new_h;
if(new_w == new_h){
answer = new_w;
}else{
answer = (new_w + new_h - GCD(new_w, new_h));
}
return total - answer;
}
- 맨 처음엔 모든 반례를 제거 하려고 했지만, 예외처리가 잘 되지 않았다..
- 검색 해 보니 사각형을 지나는 대각선의 갯수를 구하는 공식이 있었다.
w+h - gcd(w, h)
이다.- 기억 해 놓기!!!