<소스코드>
#include <iostream>
#include <cmath>
using namespace std;
int main(){
int NumTestCases;
cin >> NumTestCases;
for(int i = 0; i < NumTestCases; i++){
int x1,y1,r1;
int x2,y2,r2;
int answer;
cin >> x1 >> y1 >> r1 >> x2 >> y2 >> r2;
int distance = pow(x1-x2,2) + pow(y1-y2,2);
if(x1 == x2 && y1 == y2 && r1 == r2){
answer = -1;
cout << answer << endl;
continue;
}
//cout << distance << " " << pow(r1+r2,2) << endl;
if(pow(r1+r2,2) == distance || pow(r1-r2,2) == distance){
answer = 1;
}else if(pow(r1+r2,2) < distance || pow(r1-r2,2) > distance){
answer = 0;
}else if(pow(r1-r2,2) < distance && distance < pow(r1+r2,2)){
answer = 2;
}
cout << answer << endl;
}
}
- 변수&함수
int NumTestCases : 테스트케이스의 개수
int x1,y1,r1 : 조규현의 위치와 거리
int x2,y2,r2 : 백승환의 위치와 거리
int distance : 조규현과 백승환의 거리
int anaswer : 류재형이 있을 수 있는 곳
- 알고리즘
distance와 반지름과의 관계를 통해서 answer을 구한다.
1. 내점, 외접 : 1개
2. 내부, 외부 : 0개
3. 두 점에서 만날때 : 2개
4. 아예 같은 원 : 무한개
- 배운점
x..
- 아쉬운점&느낀점
너무 꼬와서 생각했다. 문제를 잘 이해하는 것이 중요한 거 같다.