문제
x,y 는 정수라는 조건이 주어지지 않았으므로, (0.1, 7.3) 과 같은 실수 좌표도 가능하다.
좌표를 순회해서 일치하는 조건을 찾는 방법 사용 불가
주어진 좌표와 거리로 원을 그리고 원 두개가 만나는 점이 몇개인지 반환하자.
원의 관계
두 원의 중심이 같다
두 반지름의 차 < 두 중심의 거리 < 두 반지름의 합
접점 = 2
두 반지름의 차 == 두 중심의 거리 (내접)
접점 = 1
두 반지름의 합 == 두 중심의 거리 (외접)
접점 = 1
이외
접점 = 0
package baekjoon.silver;
import java.util.Scanner;
public class Q1002 {
// 터렛
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for (int tc = 0; tc < T; tc++) {
int x1 = sc.nextInt();
int y1 = sc.nextInt();
int r1 = sc.nextInt();
int x2 = sc.nextInt();
int y2 = sc.nextInt();
int r2 = sc.nextInt();
int point = 0;
// 두 구심점 사이의 거리
double distance = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));
if (distance == 0) {
if (r1 == r2) {
// 두 원이 일치
point = -1;
}
} else {
// 두 점에서 만난다.
if (Math.abs(r1 - r2) < distance && distance < r1 + r2) {
point = 2;
}
// 한 점에서 만난다.(외접, 내접)
else if (r1 + r2 == distance || Math.abs(r1 - r2) == distance) {
point = 1;
}
// 만나지 않는다.
else {
point = 0;
}
}
System.out.println(point);
}
}
}