티스토리 뷰

문제 링크

 

1002번: 터렛

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

www.acmicpc.net

 

문제 풀이

t = int(input())

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

3053 입출력 예시

*key point: 두 점을 중심으로 하는 두 원이 만나는 점이 하나, 둘, 없을 때를 생각해서 조건에 따라 결과를 출력한다. 각 기준을 고려할 때 두 원이 내접, 외접하는 두 경우를 잘 생각해보아야 한다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함