CODING TEST
백준 알고리즘 | 1002번 (터렛) | 파이썬
sustronaut
2021. 8. 2. 11:04
1002번 (터렛)*
- 이석원은 조규현과 백승환에게 상대편 마린(류재명)의 위치를 계산하라는 명령을 내렸다. 조규현과 백승환은 각각 자신의 터렛 위치에서 현재 적까지의 거리를 계산했다.
- 조규현의 좌표 (x1, y1)와 백승환의 좌표 (x2, y2)가 주어지고, 조규현이 계산한 류재명과의 거리 r1과 백승환이 계산한 류재명과의 거리 r2가 주어졌을 때, 류재명이 있을 수 있는 좌표의 수를 출력하는 프로그램을 작성하시오.
- 한 줄에 x1, y1, r1, x2, y2, r2가 주어진다. x1, y1, x2, y2는 -10,000보다 크거나 같고, 10,000보다 작거나 같은 정수이고, r1, r2는 10,000보다 작거나 같은 자연수이다.
- 각 테스트 케이스마다 류재명이 있을 수 있는 위치의 수를 출력한다. 만약 류재명이 있을 수 있는 위치의 개수가 무한대일 경우에는 -1을 출력한다.
t = int(input())
for i in range(t):
x1, y1, r1, x2, y2, r2 = map(int, input().split())
d = ((x2 - x1) ** 2 + (y2 - y1) ** 2) ** 0.5
rs = r1 + r2
rm = abs(r1 - r2)
if d == 0:
if r1 == r2:
print(-1)
else:
print(0)
else:
if d == rs or d == rm:
print(1)
elif d < rs and d > rm:
print(2)
else:
print(0)
새롭게 알게 된 것
- 참고 사이트 : https://pacific-ocean.tistory.com/106
- 참고 사이트 : https://leedakyeong.tistory.com/entry/백준-1002번-터렛-in-python-파이썬-코드-및-설명
- abs() : 절대값