728x90
반응형
케이스만 꼼꼼히 나누면 되는 문제였다.
# 부동소수점에 주의한다. sqrt()사용주의
T = int(input())
answer = 0
for _ in range(T):
x1,y1,r1,x2,y2,r2 = map(int, input().split())
#case1: 두원이 멀리떨어져 접하지 않을때: return 0
if (x2-x1)**2 + (y2-y1)**2 > (r1 + r2)**2:
answer = 0
#case2: 두원이 겹칠때: return -1
elif (r1==r2 and x1==x2 and y1==y2):
answer = -1
#case3: 두원이 외접할때: return 1
elif (r1+r2)**2 == (x2-x1)**2 + (y2-y1)**2:
answer = 1
#case4: 두원이 내접할때: return 1
elif abs(r2-r1)**2 == (x2-x1)**2 + (y2-y1)**2:
answer = 1
#case5: 한원이 안에 있고 접점이 존재하지 않을때
elif abs(r2-r1)**2 > (x2-x1)**2 + (y2-y1)**2:
answer = 0
#case6: 두원이 두점에서 겹칠때: return 2
else:
answer = 2
print(answer)
728x90
반응형
'N' 카테고리의 다른 글
BOJ-9020 (Silver I) (0) | 2021.09.22 |
---|---|
BOJ-4948 (Silver II) (0) | 2021.09.22 |
BOJ-1929 (Silver II) (0) | 2021.09.22 |