백준 1002 터렛

전.py / / 2020. 12. 13. 00:36
728x90

www.acmicpc.net/problem/1002

 

1002번: 터렛

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

www.acmicpc.net

t = int(input())

result = []
for _ in range(t): 
    x1,y1,r1,x2,y2,r2 = map(int, input().split())
    d = ((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2))**0.5
    # d = 두 좌표의 거리
        
    if x1==x2 and y1==y2:    # 좌표가 같은 경우
        if r1==r2:           # 반지름이 같으면 교점 무한대
            result.append(-1)
        else:                # 반지름이 다르면 교점 없음
            result.append(0)
    
    elif d > r1+r2 or abs(r1-r2) > d: # 원이 접하지 않은 경우
        result.append(0)     # 바깥에서 서로 접하지 않은 경우 d > a+b
                             # 한 원이 다른 원 안에 있으면서 접하지 않은 경우 b-a > d
            
    elif d == r1+r2 or abs(r1-r2) == d:  # 원이 내접 or 외접하는 경우
        result.append(1)
    
    else:                       # 원의 접하고 교점이 두 개 인 경우
        result.append(2)

for i in range(t):
    print(result[i])

반응형

'전.py' 카테고리의 다른 글

백준 1434 책 정리  (0) 2020.12.13
백준 2015 수들의 합 4 (실패)  (0) 2020.12.13
백준 14888 연산자 끼워넣기  (0) 2020.12.13
백준 1697 숨바꼭질  (0) 2020.12.13
백준 14225 부분수열의 합  (0) 2020.12.13
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기