규칙을 찾아내는 문제인데... 사실 잘 모르겠다. 시험에서 마주친다면 풀지 못했을 것 같다.
gcd((w / gcd) + (h / gcd) - 1)
이다.BigDecimal
을 사용한다.import java.math.*;
import java.util.*;
class Solution {
public long solution(int w,int h) {
int gcd = getGcd(w, h);
int sub = gcd * ((w / gcd) + (h / gcd) - 1);
BigDecimal amount = new BigDecimal(w).multiply(new BigDecimal(h));
amount = amount.subtract(new BigDecimal(sub));
return amount.longValue();
}
public int getGcd(int a, int b){
if(b == 0) return a;
else return getGcd(b, a % b);
}
}