
한 사분면을 기준으로 문제를 풀면되는것 피타고라스 정리를 알면 문제 해결이 가능하다.
나같은 경우 각 x,y축 이외에 사분면 내부에서 테두리에 맞는 점을 구하는게 어려웠다.
코드
class Solution {
public long solution(int r1, int r2) {
long answer = 0;
int count=-1;
for (int i=1; i<r2; i++) {
long minJ = (int)Math.sqrt(1.0*r1*r1 - 1.0*i*i);
long maxJ = (int)Math.sqrt(1.0*r2*r2 - 1.0*i*i);
if(Math.sqrt(((long)r1*r1-Math.pow(i,2)))%1==0){
count++;
}
answer += maxJ-minJ;
}
return answer*4+(r2-r1+1)*4+count*4;
}
}