[백준(Baekjoon)][자바(java)] 1002 : 터렛 / 기하 1

728x90

 

https://www.acmicpc.net/problem/1002

 

1002번: 터렛

각 테스트 케이스마다 류재명이 있을 수 있는 위치의 수를 출력한다. 만약 류재명이 있을 수 있는 위치의 개수가 무한대일 경우에는 -1을 출력한다.

www.acmicpc.net

 

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {

	public static void main(String[] args) throws Exception {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int t = Integer.parseInt(br.readLine()), x1, y1, r1, x2, y2, r2, sum, diff;
		double d; // distance
		StringTokenizer st;
		StringBuilder sb = new StringBuilder();
		while (t-- > 0) {
			st = new StringTokenizer(br.readLine());
			x1 = Integer.parseInt(st.nextToken());
			y1 = Integer.parseInt(st.nextToken());
			r1 = Integer.parseInt(st.nextToken());
			x2 = Integer.parseInt(st.nextToken());
			y2 = Integer.parseInt(st.nextToken());
			r2 = Integer.parseInt(st.nextToken());
			if (x1 == x2 && y1 == y2) {
				sb.append(r1 == r2 ? "-1\n" : "0\n");
				continue;
			}
			d = Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2));
			sum = r1 + r2;
			diff = Math.abs(r1 - r2);
			sb.append((sum < d || diff > d) ? "0\n"
				: (sum == d || diff == d) ? "1\n"
				: "2\n");
		}
		System.out.println(sb.toString());
	}
}

 

 

 

반응형