이 문제에서 류재명이 있을 수 있는 r1, r2의 좌표의 개수의 경우의 수는 1개 / 2개 / 안만남 / 무한이 많다 이 4가지가 있을 수가 있다.
r2 - r1 = d (r1 < r2 일때)
r1 - r2 = d (r2 < r1 일때)
r1 + r2 = d
2개 일경우
r2 - r1 < d < r1 + r2 (r1 < r2 일때)
r1 - r2 < d < r2 + r1 (r2 < r1 일때)
무한이 많을 경우
x1 = x2, y1 = y2, r1 = r2 가 성립한다
안만남
이 3가지의 경우가 모두 아닐때 안만난다한다.
일단 x1, y1(조규현) 과 x2, y2(백승환)의 각각의 원점의 간격을 구해보면 다음과 같습니다
double distance = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2))
이 길이가 0이고 r1 과 r2의 길이가 같으면 이 원들은 무수히 많은 점에서 만난다할 수 있습니다
if (distance == 0 && r1 == r2) {
return -1
}
r1 r2 의 차이만큼 d가 작거나 합한 것 만큼 d가 작으면 r1, r2의 원이 2번 만날 수 있습니다.
if (sub < d && d < r1 + r2) {
return 2
}