https://school.programmers.co.kr/learn/courses/30/lessons/62048
수학적으로 생각을 했어야 했던 문제
최대공약수를 이용하여 대각선 방향으로 선을 그을 때 사용할 수 없는 사각형의 개수를 구하고
전체 사각형의 개수에서 빼주어 정답을 출력
class Solution {
public long solution(int w, int h) {
if (w < h) {
int temp = w;
w = h;
h = temp;
}
int gcd = gcd(w, h);
int nw = w / gcd;
int nh = h / gcd;
return (long) w*h - (long) (nw+nh-1)*gcd;
}
public int gcd(int a, int b) {
int c = a % b;
if (c == 0) {
return b;
}
return gcd(b, c);
}
}
'Programmers' 카테고리의 다른 글
[프로그래머스][JAVA]Lv. 2 - 쿼드압축 후 개수 세기 (0) | 2023.09.25 |
---|---|
[프로그래머스][JAVA]Lv. 2 - 튜플 (0) | 2023.09.25 |
[프로그래머스][JAVA]Lv. 2 - 괄호 변환 (0) | 2023.09.25 |
[프로그래머스][JAVA]Lv. 3 - 정수 삼각형 (0) | 2023.07.31 |
[프로그래머스][JAVA]Lv. 2 - 문자열 압축 (0) | 2023.07.30 |