programmers_두 원 사이의 정수 쌍_java
2023. 5. 21. 19:57ㆍAlgorithm/Programmers
728x90
https://school.programmers.co.kr/learn/courses/30/lessons/181187
class Solution {
public long solution(int r1, int r2) {
long answer = 0;
answer -= r2-r1+1; // 겹치는 경우 제거
double r2Square = Math.pow(r2, 2); // r2 * r2 -> int*int = 오버플로우 발생
double r1Square = Math.pow(r1, 2);
// 원의 방정식 -> r1*r1 <= x*x + y*y <= r2 * r2
for (int x = 0; x<=r2; x++){
double xSquare = Math.pow(x, 2);
double r2XSub = r2Square - xSquare;
double r1XSub = r1Square - xSquare;
double maxy = Math.floor(Math.sqrt(r2XSub));
double miny = 0;
if (r1Square -xSquare >= 0){ // x < r1일때
miny = Math.ceil(Math.sqrt(r1XSub));
}
answer += maxy - miny + 1;
}
answer = answer*4;
return answer;
}
}
'Algorithm > Programmers' 카테고리의 다른 글
programmers_혼자서 하는 틱택토_java (0) | 2023.05.24 |
---|---|
programmers_숫자 블록_java (0) | 2023.05.22 |
programmers_리코쳇 로봇_java (0) | 2023.05.21 |
programmers_우박수열 정적분_java (1) | 2023.05.21 |
programmers_N-Queen_java (0) | 2023.05.19 |