백준 문풀

[Python] 조건분기 - 1002. 터렛 (실3) / 두 원의 위치관계

브로코딩 2023. 8. 8. 08:20

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

 

1002번: 터렛

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

www.acmicpc.net

 

>>문제 포인트

- 두 원의 위치관계 (내접 외접)조건을 그대로 코드로 옮기면 됨

- 링크 참조

https://mathbang.net/101#gsc.tab=0

 

두 원의 위치관계, 내접, 외접

위치관계 또 나오네요. 이번에는 두 원의 위치관계에요. 위치관계 마지막이니까 정신 바짝 차리고 따라오세요. 원과 직선의 위치관계, 원의 할선과 접선, 접점에서 했던 것처럼 두 원이 어떤 관

mathbang.net

 

def answer(x1,y1,r1,x2,y2,r2):
  distance = pow(((x1-x2)**2+(y1-y2)**2),0.5)
  
  #무한대인 경우
  if (x1,y1,r1) ==(x2,y2,r2):
    print(-1)
    return
  
  #원이 밖에 있는 경우
  if distance > max(r1,r2):
    if distance == (r1+r2):
      print(1)
    elif distance > (r1+r2):
      print(0)
    else:
      print(2)
  #원이 안에 있는 경우
  else:
    if distance+min(r1,r2)==max(r1,r2):
      print(1)
    elif(distance+min(r1,r2) <max(r1,r2)):
      print(0)
    else:
      print(2)
    

n= int(input())

for _ in range(n):
  a,b,c,d,e,f = map(int, input().split())
  answer(a,b,c,d,e,f)