반응형

문제

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


원의 방정식과 2차 방정식은 알고있지만 코딩으로 구현하는건 좀 다르다.

문제에서는 두원이 두점에서 만나는지 한점에서 만나는지 만날수 없는지를 물어보고있다. 

두원이 같다면 무한대일것이다.더 자세히 들어가면 한원안에 다른원이 있는경우에 접점이

 없는경우 무한한 경우 한개가 있을경우가 있고 따로 떨어져있을경우 한점에서 만나는 

경우와 완전히 떨어져 만날수 없는경우 그리고 두원이 겹쳐서 두곳에서 만나는 경우가 

있을것이다.

두원의 위치관계 정리 된 사이트 내접 외접

https://mathbang.net/101



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import sys
 
n=int(sys.stdin.readline())
 
 
while(n>0):
    n-=1
    x1,y1,r1,x2,y2,r2=map(int,sys.stdin.readline().split())
 
    d= (x1-x2)**2+(y1-y2)**2    #두점사이의 거리 계산의 편의를 위해 제곱근을 구하지는 않음
    if x1==x2 and y1==y2 and r1==r2:  #두점이 같고 반지름도 같을때
        print(-1)
    elif x1==x2 and y1==y2 and r1!=r2:  #두점이 같고 반지름이 다를때
        print(0)
    elif d==(r1-r2)**2 or d==(r1+r2)**2:    #두점의 거리가 두반지름의 차랑 같을때(내접,외접)
        print(1)
    elif (r1-r2)**2<d<(r1+r2)**2:  #두점에서 만날때
        print(2)
    else:       #두원이 두점에서 만날때
        print(0)

cs



사이트에 있는 표를 참조하여 작성해봤다.




반응형

'알고리즘(python) > 수학' 카테고리의 다른 글

[Python]수학3 백준 1037  (0) 2020.01.19
[Python]수학3 백준 5086  (0) 2020.01.19
[Python]수학2 백준 3053  (0) 2019.12.21
[Python]수학2 백준 4153  (0) 2019.12.21
[Python]수학2 백준 3009  (0) 2019.12.21
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기