2020. 2. 24. 05:40
package backjoon;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class Main{
public static void main(String[] args) throws IOException
{
//position1 x1, y1 / distance r1
int x1 = 0 , y1 = 0, r1 = 0;
//position2 x2, y2 / distance r2
int x2 = 0 , y2 = 0, r2 = 0;
//적의 위치는 A원과 B원이 겹치는 부분에 존재함
//따라서 원 두개가 만나는 경우는 0 , 1 , 2
//두원의 반지름이 r1, r2이고 r1+r2 = 두 원의 중심의 거리와 같으면 만나는점이 1개
//두원의 반지름이 .. r1+r2 < 두원의 중심의 거리 0개 안만나는 경우
//... r1+r2 > 두원의 중심의 거리 2개 겹치는 경우
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer strToken;
int count = 0;
count = Integer.parseInt(br.readLine());
while(count > 0)
{
strToken = new StringTokenizer(br.readLine());
x1 = Integer.parseInt(strToken.nextToken());
y1 = Integer.parseInt(strToken.nextToken());
r1 = Integer.parseInt(strToken.nextToken());
x2 = Integer.parseInt(strToken.nextToken());
y2 = Integer.parseInt(strToken.nextToken());
r2 = Integer.parseInt(strToken.nextToken());
double distance = Math.sqrt(Math.pow(x1 - x2 , 2) + Math.pow(y1 - y2, 2));
if(r2 - r1 < distance && distance < r1 + r2)
{
//원이 두점
bw.write("2"+ "\n");
}
else if(distance == r1 + r2)
{
//원이 외접 한점에서
bw.write("1"+ "\n");
}
else if(distance == r2 - r1 && distance != 0)
{
//원이 내접
bw.write("1"+ "\n");
}
else if(distance < r2 - r1)
{
//하나의 원이 다른 원을 포함 (만나지 않음)
bw.write("0"+ "\n");
}
else if(distance > r1 + r2)
{
//두 원이 멀리 떨어져있는 경우
bw.write("0"+ "\n");
}
else if(distance == 0 && r1 == r2)
{
//두원이 같은 경우
bw.write("-1"+ "\n");
}
count --;
}
bw.flush();
}
}
동작은 되는데 왜 채점이 틀릴까나..
'AREA(지속적인 일상) > 02_백준' 카테고리의 다른 글
[백준] - 2753 - 윤년 (0) | 2021.08.24 |
---|---|
[백준] - 1330 대소 비교 (0) | 2021.08.24 |
[백준] 1009번 - 분산처리 (0) | 2021.08.24 |
[백준] 2588 곱셈 (0) | 2021.08.23 |
[백준 15552] 빠른 A+B (Java) (0) | 2020.02.24 |