백준 1002-터렛

태태·2023년 5월 23일
0

문제

알고리즘 분류)

  • 수학
  • 기하학
  • 많은 조건 분기

풀이

문제의 핵심은 두 원의 원점좌표와 반지름을 주고 접점의 개수를 찾는 문제이다
두 원이 똑같은 경우에는 -1을 출력해주면 된다
접점이 2개인 경우
-접점이 2개인 경우-


소스코드

python)

T = int(input())

for i in range(T):
    x1,y1,r1,x2,y2,r2 = map(int, input().split())
    
    d = (((x1-x2)**2)+((y1-y2)**2))**0.5
    
    if r1 > r2:
        Rarge_r = r1
        Small_r = r2
    else:
        Rarge_r = r2
        Small_r = r1
        
    if x1 == x2 and y1 == y2 and r1 == r2:
        print(-1)
    elif Rarge_r-Small_r < d and d < Rarge_r + Small_r:
        print(2)
    elif Rarge_r + Small_r == d or Rarge_r-Small_r == d:
        print(1)
    elif d < Rarge_r - Small_r or Rarge_r + Small_r < d:
        print(0)
profile
과정에서 재미를 느끼지 않는데 성공하는 일은 거의 없다

0개의 댓글