https://school.programmers.co.kr/learn/courses/30/lessons/181187
-
두 원 사이의 정수 쌍
문제 설명
제한 사항
입출력 예r1r2result
입출력 예 설명
x축과 y축으로 이루어진 2차원 직교 좌표계에 중심이 원점인 서로 다른 크기의 원이 두 개 주어집니다. 반지름을 나타내는 두 정수 r1, r2가 매개변수로 주어질 때, 두 원 사이의 공간에 x좌표와 y좌표가 모두 정수인 점의 개수를 return하도록 solution 함수를 완성해주세요.
※ 각 원 위의 점도 포함하여 셉니다.
제한 사항
- 1 ≤ r1 < r2 ≤ 1,000,000
입출력 예r1r2result
2 | 3 | 20 |
입출력 예 설명
그림과 같이 정수 쌍으로 이루어진 점은 총 20개 입니다.
나의풀이
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;
}
}
'코테풀이' 카테고리의 다른 글
[프로그래머스] 우박수열 정적분 java (LEVEL2) (1) | 2024.01.27 |
---|---|
[프로그래머스] 스티커 모으기(2) java 풀이(LEVEL3) (0) | 2023.09.14 |
[프로그래머스] 기지국 설치 java 풀이 (LEVEL3) (0) | 2023.09.06 |
[프로그래머스] 숫자 게임 java 풀이(LEVEL3) (0) | 2023.08.31 |
[프로그래머스] 야근 지수 java 풀이 (LEVEL3) (0) | 2023.08.27 |