
이 문제는 (x1, y1), (x2, y2)가 주어졌을 때 첫 번째 점에서의 거리 r1과 두 번째 점에서의 거리 r2가 주어졌을 때, 있을 수 있는 좌표의 수를 출력하는 프로그램을 작성해야 합니다.
import math
n = int(input())
for i in range(n):
x1,y1,r1,x2,y2,r2 = map(int,input().split(" "))
# (x1,y1)과 (x2,y2) 사이의 거리
r = math.sqrt((x1-x2)**2+(y1-y2)**2)
# 두 원이 만나지 않는 경우
if (0 <= r < abs(r1-r2) and r1!=r2) or r > r1+r2:
print(0)
# 두 원이 한 점에서 만나는 경우(외접,내접)
elif (r == abs(r1-r2) and r!=0) or r == r1+r2:
print(1)
# 두 원이 두 점에서 만나는 경우 => 2개
elif abs(r1-r2) < r < r1+r2:
print(2)
# 두 원이 일치하는 경우 => 무한개
elif r1==r2 and r==0:
print(-1)

반응형
'알고리즘 > 백준' 카테고리의 다른 글
| [백준] 2447번 [재귀함수] 별 찍기 - 10 (0) | 2021.12.15 |
|---|---|
| [백준] 2343번 [이분탐색] 기타 레슨 (0) | 2021.12.13 |
| [백준] 3055번 [bfs] 탈출 (0) | 2021.12.06 |
| [백준] 1929번 [기본수학2] 소수 구하기 (0) | 2021.12.01 |
| [백준] 10026번 [dfs] 적록색약 (0) | 2021.11.29 |
