두 원 사이의 정수쌍

내 할일 잘 하기·2023년 4월 16일
0

Programers :: Level 2

목록 보기
6/7
💡

문제 설명

x축과 y축으로 이루어진 2차원 직교 좌표계에 중심이 원점인 서로 다른 크기의 원이 두 개 주어집니다. 반지름을 나타내는 두 정수 r1r2가 매개변수로 주어질 때, 두 원 사이의 공간에 x좌표와 y좌표가 모두 정수인 점의 개수를 return하도록 solution 함수를 완성해주세요.※ 각 원 위의 점도 포함하여 셉니다.


제한 사항

  • 1 ≤ r1 < r2 ≤ 1,000,000

입출력 예

r1r2result
2320

입출력 예 설명

그림과 같이 정수 쌍으로 이루어진 점은 총 20개 입니다.

나의 생각

제 1 사분면 내의 정수 점을 체크.. 해보자.

나의 풀이

function solution(r1, r2) {
    let sum = 0;
    for(i = 1; i < r2; i++){
        sum += Math.floor(Math.sqrt(Math.pow(r2,2) - Math.pow(r2-i,2)))
        if( i < r1) {
            const inner = Math.sqrt(Math.pow(r1,2) - Math.pow(r1-i,2))
            sum -= (Math.floor(inner) + (Number.isInteger(inner) ? -1 : 0))
        }
    }
    return (sum + r2 - r1 + 1) * 4
}

오류 분석

profile
함께 일하고싶은 개발자로 기억될래요

0개의 댓글