
C#을 주로 쓰다보니 기본기를 쌓을겸 백준 문제를 풀기 시작했다.
각자의 좌표가 있고 적까지의 거리가 있으므로 위치의 수를 구하면 된다.

좌표를 입력받고 x1과 x2의 거리(distance)를 r값과 비교할 수 있도록 구함
x1과 x2가 완전히 동일한 원일때 -1,
교점이 1개 일때,
교점이 0개 일때,
교점이 2개 일때를 구하면 된다.
class Turret {
static void Main(String[] args)
{
int testcase = int.Parse(Console.ReadLine());
while (testcase > 0)
{
// 입력받을 좌표
int[] coord = Array.ConvertAll(Console.ReadLine().Split(), int.Parse);
// 두점사이 거리
int a = coord[3] - coord[0];
int b = coord[4] - coord[1];
double distance = Math.Sqrt(Math.Pow(a, 2) + Math.Pow(b, 2));
// r1, r2
int r1 = coord[2];
int r2 = coord[5];
if (coord[0] == coord[3] && coord[1] == coord[4] && r1==r2)
Console.WriteLine(-1);
else if (Math.Abs(r1 + r2) == distance || (Math.Abs(r1 - r2) == distance))
Console.WriteLine(1);
else if (Math.Abs(r1 + r2) < distance || (Math.Abs(r1 - r2) > distance))
Console.WriteLine(0);
else
Console.WriteLine(2);
testcase -= 1;
}
}
}
헤헷.. 한번에 성공은 못했음 ㅎㅎ
C#의 기초부터 착실히 다져나갈 예정
업무에서 쓸때는 몰랐는데 막상 또 알고리즘을 풀때 사용하려고 하니 갑자기 어렵게 느껴지는..
