코딩테스트/기초

백준 터렛 1002 - python

math_tbro 2022. 1. 11. 23:24

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

 

1002번: 터렛

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

www.acmicpc.net

풀이: 

T = int(input())
for _ in range(T):
    x1,y1,r1,x2,y2,r2 = map(int,input().split())
    d = ((x2 - x1) ** 2 + (y2 - y1) ** 2) **(1/2)
    if d == 0 and r1 == r2 :
        print(-1)
    elif abs(r1-r2) <d < r1 + r2 :
        print(2)
    elif d == r1+r2 or abs(r1-r2) == d :
        print(1)
    else :
        print(0)

 

처음엔 막 방정식을 써가며 어렵게 풀었는데 이건 만나는 지점의 값을 구하는게 아니라 몇 개를 만났냐는거니까 점과 점사이의 거리를 이용해서 접하는지 2개 만나는지 안만나는지 따져주면 된다.  

와 아이폰으로 찍고 복사해서 붙혀넣기가 되네...

그림이 전부다. 

'코딩테스트 > 기초' 카테고리의 다른 글

백준 2798 블랙잭 - python  (0) 2022.01.15
백준 10872 팩토리얼 - python  (0) 2022.01.12
백준 3053 택시기하학 - python  (0) 2022.01.11
백준 4153 직각삼각형 - python  (0) 2022.01.11
백준 3009 네 번째 점 - python  (0) 2022.01.11