알고리즘 따라가기

kimdooh2019·2020년 3월 20일
0

algorithm

목록 보기
1/1

BOJ 1003 문제 (실버 4)

터렛 문제는 결국 두 원의 위치 관계 수학 문제

K = int(input())


for i in range(K):
    x1, y1, r1, x2, y2, r2 = map(int, input().split())
    # import math
    # distance = math.sqrt( ((x1 - x2) **2) + ((y1- y2) **2))
    distance =  (((x1 - x2) **2) + ((y1- y2) **2) )**0.5
    if x1 == x2 and y1 == y2:
        if r1 ==r2:
            print(-1)
        else:
            print(0)
            continue
    else:
        # case3) 다른 좌표 한 원이 다른 원을 포함 할때(r1 > r2 , r2 > r1) or 서로 너무 멀리 떨어져있는 원   
        if distance < r1 - r2 or distance < r2 - r1 or distance > r1 + r2:print(0)
        
        # case4) 다른 좌표 한 원이 내부에 존재하면서 내접 할때 (r1 > r2 , r2 > r1) or 외접
        elif distance == r1 -r2 or distance == r2 - r1 or distance == r1 + r2:print(1)
        
        # case5) 다른 좌표 두 점에서 만날 때
        else:print(2)

사진 출처
https://mathjk.tistory.com/178

profile
testify to the light

0개의 댓글