두 원 사이의 정수 쌍

Lee1231234·2023년 4월 28일

코딩테스트

목록 보기
47/95

한 사분면을 기준으로 문제를 풀면되는것 피타고라스 정리를 알면 문제 해결이 가능하다.
나같은 경우 각 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;
    }
}
profile
not null

0개의 댓글