https://www.acmicpc.net/problem/1002
#Solution
단순 수학 문제이다. 예외를 걸러주는 것이 중요하다.
0) 같은 점일때: -1 혹은 0
1) distance(점 사이의 거리) 가 반지름 더한 값 보다 작을 때: 0
2) 한 원이 다른 원을 포함하도록 클 때: 0
3) 외접하거나 내접할 때: 1
4) 그 외: 2
test = int(input())
for _ in range(test):
x1, y1, r1, x2, y2, r2 = map(int, input().split())
distance = (((x1 - x2) ** 2) + ((y1 - y2) ** 2)) ** 0.5
if x1 == x2 and y1 == y2:
if r1 == r2:
print(-1)
else:
print(0)
continue
if r1 > distance + r2 or r2 > distance + r1 or distance > r1 + r2:
print(0)
elif r1 == distance + r2 or r2 == distance + r1 or r1 + r2 == distance:
print(1)
else:
print(2)
'Programming [Python] > 백준 알고리즘 솔루션' 카테고리의 다른 글
#135 백준 파이썬 [11053] 가장 긴 증가하는 부분 수열 - LIS (0) | 2019.10.07 |
---|---|
#134 백준 파이썬 [11653] 소인수 분해 (0) | 2019.10.05 |
#132 백준 파이썬 [11659] 구간 합 구하기 4 (0) | 2019.10.05 |
#131 백준 알고리즘 [1260] DFS와 BFS - 그래프 (0) | 2019.10.05 |
#130 백준 파이썬 [2579] 계단 오르기 - 점화식 (0) | 2019.10.04 |