1002번 터렛 문제 python 소스

파이썬 프로그래밍에 익숙해지고자 acmicpc 문제를 하나씩 풀어보기로 했습니다

1002번 터렛 문제.. 두 점을 잇는 선이 만들어내는 원에 대해 생각해보면 풀수 있는 문제였습니다

11번의 실행시도 끝에 푼 문제

 

import math

def proc(v_input):
    x1 = int(v_input[0])
    y1 = int(v_input[1])
    r1 = int(v_input[2])
    x2 = int(v_input[3])
    y2 = int(v_input[4])
    r2 = int(v_input[5])

    xv = pow(x1 - x2, 2)
    yv = pow(y1 - y2, 2)    
    fv = math.sqrt(xv + yv)    

    if x1 == x2 and y1 == y2:
        if r1 == r2:
            print(-1)
        else:
            print(0)
    else:
        if r1 > r2:
            tmp = r1
            r1 = r2
            r2 = tmp

        if fv == r1 + r2 or r2 - r1 == fv:
            print(1)
        elif fv < r1 + r2 and fv > r2 - r1:
            print(2)    
        else:
            print(0)


v_loopCount = int(input())

for idx in range(0, v_loopCount):
    v_input = input().split()
    proc(v_input)