최대 1 분 소요

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

문제 링크

#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)이다.
  • 기억 해 놓기!!!

카테고리:

업데이트: