코딩테스트 대비/단계별 코딩 테스트 준비(27일 과정)

[math3/Python] 1002번: 터렛 - 효과는 굉장했다!

bluetag_boy 2022. 2. 11. 20:48
반응형
 

1002번: 터렛

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

www.acmicpc.net

 

알고리즘 분류

  • 수학
  • 기하학

 

 

SOLUTION

import sys

T = int(sys.stdin.readline())

for _ in range(T):
    x1, y1, r1, x2, y2, r2 = map(int, sys.stdin.readline().split())
    distance = ((x1-x2)**2 + (y1-y2)**2) ** (1/2)
    if distance == 0 and r1 == r2: # 두 원이 일치할 때
        print(-1) 
    
    elif distance == r1+r2 or distance == abs(r1-r2): # 두 원이 내접, 외접 할때
        print(1)
        
    elif abs(r1-r2) < distance < r1+r2:
        print(2)
        
    else: # 두 원이 만나지 않을 때
        print(0)