// 최대 공약수 계산 (유클리드 호제법)
private int gcd(int a, int b) {
while (b != 0) {
int temp = b;
b = a % b;
a = temp;
}
return a;
}// gcd func end
public long solution2(int w, int h) {
long totalCount = (long) w * (long) h;
long diagonalCount = w + h - BigInteger.valueOf(w).gcd(BigInteger.valueOf(h)).longValue();
return totalCount - diagonalCount;
}
class Solution {
public long solution(int w,int h) {
long answer = 0L;
long gcd = gcd(w, h);
answer = (long)w * (long)h - ((long)w + (long)h - gcd);
return answer;
}//end of solution
private long gcd(int w, int h){
if(w == 0) return h;
return gcd(h % w, w);
}//end of gcd
}//end of solution
'학습 기록 (Learning Logs) > 알고리즘 개념 정리' 카테고리의 다른 글
Greedy (0) | 2024.08.04 |
---|---|
DFS (0) | 2024.08.02 |
[java] Array (0) | 2021.09.27 |
[java] Math 클래스, String (0) | 2021.09.27 |
[java] stream (0) | 2021.09.27 |