티스토리 뷰
접근법
문제가 너무 신박해서 재밌게 풀었다. 복잡해 보이는 문제지만 자세히 살펴보면,
우선 두 개의 좌표가 주어진다. 이 좌표로 부터 특정 점 (마린 a.k.a 류재명) 까지의 거리를 계산했을 때,
마린이 있을 수 있는 좌표를 찾으라고 되어있다. 따라서 하나의 터렛으로 부터 측정한 거리는 원으로 나타낼 수 있고,
마찬가지로 또 다른 터렛에서 측정한 거리를 원으로 나타낼 수 있다.
그랬을 때, 마린이 위치할 수 있는 경우의 수는 두 원의 접점의 수를 계산하면 되는 것이다.
두 원 사이의 관계는 아래의 그림을 통해 확인하자.
풀이
import math
case = int(input())
for i in range(case):
x1,y1,r1,x2,y2,r2 = map(int,input().split(' '))
D = math.sqrt((x2 - x1)**2 + (y2 - y1)**2)
R = r1 + r2
r = -(r2-r1) if r2 - r1 < 0 else r2 - r1
if D == 0:
if r1 == r2 :
print(-1)
else :
print(0)
else :
if D < R and D > r:
print(2)
elif (D == R) or (D == r):
print(1)
else :
print(0)
'프로그래밍 > BOJ' 카테고리의 다른 글
백준 #10870: 피보나치 수 5 (0) | 2020.02.02 |
---|---|
백준 #10872: 팩토리얼 (0) | 2020.02.02 |
백준 #3053: 택시 기하학 (0) | 2020.01.30 |
백준 #4153: 직각삼각형 (0) | 2020.01.27 |
백준 #3009: 네 번째 점 (0) | 2020.01.27 |
댓글