오류 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T;
T = sc.nextInt();
int x1, y1, r1, x2, y2, r2;
double d;
for (int i = 0; i < T; i++) {
x1 = sc.nextInt();
y1 = sc.nextInt();
r1 = sc.nextInt();
x2 = sc.nextInt();
y2 = sc.nextInt();
r2 = sc.nextInt();
d = Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2));
if (d < (r1 + r2) && d > Math.abs(r1 - r2))
System.out.println(2);
else if (d == (r1 + r2) || d == Math.abs(r1 - r2))
System.out.println(1);
else if (d > (r1 + r2) || d < Math.abs(r1 - r2) || (d == 0 && r1!=r2))
System.out.println(0);
else if (d == 0 && r1 == r2)
System.out.println(-1);
}
}
}
정답 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T;
T = sc.nextInt();
int x1, y1, r1, x2, y2, r2;
double d;
for (int i = 0; i < T; i++) {
x1 = sc.nextInt();
y1 = sc.nextInt();
r1 = sc.nextInt();
x2 = sc.nextInt();
y2 = sc.nextInt();
r2 = sc.nextInt();
d = Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2));
if (d == 0 && r1 == r2)
System.out.println(-1);
else if (d < (r1 + r2) && d > Math.abs(r1 - r2))
System.out.println(2);
else if (d == (r1 + r2) || d == Math.abs(r1 - r2))
System.out.println(1);
else if (d > (r1 + r2) || d < Math.abs(r1 - r2) || (d == 0 && r1!=r2))
System.out.println(0);
}
}
}
if 문에서 해당 코드를 제일 마지막에서 첫번째로 올렸더니 해결되었다.
if (d == 0 && r1 == r2)
이유는 모르겠다.
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 1004번 자바 (0) | 2022.02.17 |
---|---|
[백준] 1003번 자바 (0) | 2022.02.17 |