[BOJ] 1002: 터렛
🔒 예제
>> 3
>> 0 0 13 40 0 37
>> 0 0 3 0 7 4
>> 1 1 1 1 1 5
2
1
0
🔧 풀이
1. n = int(sys.stdin.readline().rstrip())
2. x1, y1, r1, x2, y2, r2 = map(int, sys.stdin.readline().split())
3. 문제 == 두 원의 교점 개수 찾기
3.1 한 점에서 만난다
3.2 두 점에서 만난다
3.3 안 만난다
3.4 일치한다
🔑 답안
import sys, math
n = int(sys.stdin.readline().rstrip())
for _ in range(n):
x1, y1, r1, x2, y2, r2 = map(int, sys.stdin.readline().split())
d = math.sqrt((x1 - x2)**2 + (y1 - y2)**2)
lr = max(r1, r2)
sr = min(r1, r2)
# 한 점에서 만난다 - 외접 / 내접
if lr + sr == d or lr - sr == d:
print(1)
# 두 점에서 만난다
elif lr - sr < d < lr + sr:
print(2)
# 안 만난다
elif lr + sr < d or d < lr - sr or (d == 0 and lr != sr):
print(0)
# 일치한다
elif d == 0 and lr == sr:
print(-1)
💡 개념
Author And Source
이 문제에 관하여([BOJ] 1002: 터렛), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ohhj1999/BOJ-1002저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)