이석원은 조규현과 백승환에게 상대편 마린(류재명)의 위치를 계산하라는 명령을 내렸다. 조규현과 백승환은 각각 자신의 터렛 위치에서 현재 적까지의 거리를 계산했다.
조규현의 좌표
와 백승환의 좌표
가 주어지고, 조규현이 계산한 류재명과의 거리
과 백승환이 계산한 류재명과의 거리
가 주어졌을 때, 류재명이 있을 수 있는 좌표의 수를 출력하는 프로그램을 작성하시오.
조규현-류재명 거리
백승환-류재명 거리
를 반지름으로 하는 원을 그린 다음에, 겹치는 점을 생각하였다.
이렇게 생각을 하고 연산을 하였다.
import math
n = int(input())
for i in range(0, n):
x_1, y_1, r_1, x_2, y_2, r_2 = map(int, input().split(' '))
distance = math.sqrt((x_1-x_2)**2 + (y_1-y_2)**2)
if r_1 > r_2:
temp = r_2
r_2 = r_1
r_1 = temp
if distance == r_1 + r_2:
print(1)
elif distance > r_1 + r_2:
print(0)
elif distance == 0 and r_1 == r_2:
print(-1)
elif distance < r_1 + r_2:
if distance + r_1 < r_2:
print(0)
elif distance + r_1 == r_2:
print(1)
else:
print(2)
이 문제는 연산 문제여서 모든 경우의 수를 생각하는 것이 가장 중요했다.