성능 요약
메모리: 72.5 MB, 시간: 22.85 ms
구분
코딩테스트 연습 > 연습문제
채점결과
정확성: 100.0
합계: 100.0 / 100.0
제출 일자
2024년 06월 22일 00:24:53
문제 설명
x축과 y축으로 이루어진 2차원 직교 좌표계에 중심이 원점인 서로 다른 크기의 원이 두 개 주어집니다. 반지름을 나타내는 두 정수 r1, r2가 매개변수로 주어질 때, 두 원 사이의 공간에 x좌표와 y좌표가 모두 정수인 점의 개수를 return하도록 solution 함수를 완성해주세요.
※ 각 원 위의 점도 포함하여 셉니다.
제한 사항
- 1 ≤
r1<r2≤ 1,000,000
입출력 예
| r1 | r2 | result |
|---|---|---|
| 2 | 3 | 20 |
입출력 예 설명

그림과 같이 정수 쌍으로 이루어진 점은 총 20개 입니다.
출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges
풀이
Java
class Solution {
public long solution(int r1, int r2) {
long answer = 0;
for (int i=1; i<=r2; i++) {
int start = (int)Math.ceil(Math.sqrt((long)r1*r1 - (long)i*i));
int end = (int)Math.floor(Math.sqrt((long)r2*r2 - (long)i*i));
answer += end - start + 1;
}
return answer * 4;
}
}