본문 바로가기
백준

[백준/파이썬] 1002번: 터렛

by 개발LOG 2024. 3. 23.

https://www.acmicpc.net/problem/1002

 

1002번: 터렛

각 테스트 케이스마다 류재명이 있을 수 있는 위치의 수를 출력한다. 만약 류재명이 있을 수 있는 위치의 개수가 무한대일 경우에는 $-1$ 출력한다.

www.acmicpc.net

 
 

예제 입력 1 

3
0 0 13 40 0 37
0 0 3 0 7 4
1 1 1 1 1 5

예제 출력 1 

2
1
0

 

소스코드:

from math import sqrt
T = int(input())
for _ in range(T):
    x1, y1, r1, x2, y2, r2 = map(int, input().split())
    dist = sqrt((x1 - x2) ** 2 + (y1 - y2) ** 2)
    diff = abs(r1 - r2)

    ans = 0
    # 두 원이 일치 (적이 무한대)    
    if dist == 0 and r1 == r2:
        ans = -1
    # 두 원이 외접하거나, 내접할 때 (적이 하나)
    elif dist == r1 + r2 or dist == diff:
        ans = 1
    # 두 원이 두  점에서 만날 때 (적이 둘)
    elif diff < dist < r1 + r2:
        ans = 2
    else:
        print(0)  # 그 외에

    print(ans)

 

 

 

설명 참고 링크: https://itstory1592.tistory.com/33