[백준] #1002 터렛 python

2022. 12. 31. 00:15

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

 

1002번: 터렛

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

www.acmicpc.net

 

📕 설명 📕

세 가지 경우로 나뉘어 풀 수 있다.

 

1. 두 원이 동심원이고, 반지름이 같은 경우.

 

2. 두 원이 서로 다른 두 점에서 만날 경우.

 

3. 내접 or 외접

 

4. 그 외

 

원의 방정식에 대한 성질을 알고 있다면 쉽게 풀 수 있었을 것이다.

🧑🏻‍💻 나의 풀이 🧑🏻‍💻

T = int(input())

result = []
for _ in range(T):
    x1, y1, r1, x2, y2, r2 = map(int, input().split())
    circle_dictance = ((x1 - x2)**2 + (y1 - y2)**2)**0.5
    if circle_dictance == 0 and r1 == r2:
        result.append(-1)
    elif abs(r1 - r2) < circle_dictance and circle_dictance < r1 + r2:
        result.append(2)
    elif abs(r1 - r2) == circle_dictance or circle_dictance == r1 + r2:
        result.append(1)
    else:
        result.append(0)
for i in result:
    print(i)

 

 

BELATED ARTICLES

more