[프로그래머스] 두 원 사이의 정수 쌍 (JavaScript)

Jake·2023년 4월 22일
0

문제 설명[링크]

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

풀이

function solution(r1, r2) {
  let result = 0;
  let curMaxY = r2;
  let curMinY = r1;

  for (let i = 0; i <= r2; i += 1) {
    while (curMaxY ** 2 + i ** 2 > r2 ** 2) curMaxY -= 1;
    while (curMinY !== -1 && (curMinY ** 2 + i ** 2 >= r1 ** 2)) curMinY -= 1;

    result += curMaxY - curMinY;
  }

  return result * 4 - (r2 - r1 + 1) * 4;
}

결과

0개의 댓글