본문 바로가기

Algorithm & Data Structure

백준 - 1002번

728x90
반응형
k = int(input())
i=0
while i < k:
    x1,y1,r1,x2,y2,r2 = input().split()
    a = ((int(x1) - int(x2)))**2
    b = ((int(y1) - int(y2)))**2
    distance = (int(a)+int(b))**0.5

    if int(r1)+int(r2) == distance:
        print(1)

    elif distance < int(r1)+int(r2) and distance > abs(int(r1)-int(r2)):
        print(2)

    elif (distance > int(r1)+int(r2)) or (distance == 0 and r1 != r2):
        print(0)

    elif int(r1)>int(r2):
        if distance + int(r2) < int(r1):
            print(0)

        elif distance + int(r2) == int(r1):
            print(1)

    elif int(r2) > int(r1):
        if distance + int(r1) < int(r2):
            print(0)

        elif distance + int(r1) == int(r2):
            print(1)


    elif x1 == x2 and y1 == y2 and r1 == r2:
        print(-1)
    i=i+1

좌표와 반지름이 주어진 것을 원을 그린다고 생각하면 된다.

원의 접점을 찾는 문제였다.

조건을 정리해놓은 아이패드 필기 자료를 올리도록 해보겠다.

한 번에 맞아서 기분이 좋다.

.

백준 1002번.note
0.22MB

728x90
반응형

'Algorithm & Data Structure' 카테고리의 다른 글

DFS & BFS  (0) 2022.01.08
백준 - 2108번  (0) 2022.01.07
백준 - 4948번  (0) 2021.12.23
백준 - 2581번  (0) 2021.12.21
백준 - 1011번  (0) 2021.12.20