헝D의 일기장
article thumbnail

https://school.programmers.co.kr/learn/courses/30/lessons/181187

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

  • 두 원 사이의 정수 쌍
문제 설명

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


제한 사항
  • 1 ≤ r1 < r2 ≤ 1,000,000

입출력 예r1r2result
2 3 20

입출력 예 설명


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

 

1. 나의풀이

<bash />
class Solution { public long solution(int r1, int r2) { long answer = 0; //x^2+y^2 = r^2 //y=sqrt(r^2 - x^2) //r2는 현재위치보다 작은값(=내림) //r1은 현재위치보다 큰값(=올림) for( int i = 1; i <= r2 ; i++){ double y2 = Math.sqrt(Math.pow(r2,2) - Math.pow(i,2)); double y1 = Math.sqrt(Math.pow(r1,2) - Math.pow(i,2)); answer += ( (long)Math.floor(y2) - (long)Math.ceil(y1) + 1); } answer *= 4; return answer; } }
profile

헝D의 일기장

@헝D

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!