[백준] 1002: 터렛 (Python)

JiKwang Jeong·2021년 9월 27일
0

문제📖

풀이🙏

  • 다음과 같이 경우를 4가지 생각하여 경우에 따른 교점의 개수를 출력한다.
    1. 두 원이 일치하는 경우 -1 출력
    2. 두 원이 한점에서 만나는 경우 (외접, 내접) 1 출력
    3. 두 원이 만나지 않는 경우 0 출력
    4. 두 점에서 만나는 경우 2 출력

코드💻

for _ in range(int(input())):
    x1, y1, r1, x2, y2, r2 = map(int, input().split())
    r = ((x1-x2)**2 + (y1-y2)**2) ** 0.5
    maxR = max(r1, r2)
    minR = min(r1, r2)
    # 두 원이 일치하는 경우 -1
    if r == 0 and r1==r2:
        print(-1)
    # 두 원이 한점에서 만나는 경우 (외접, 내접)
    elif r1 + r2 == r or maxR == minR + r:
        print(1)
    # 두 원이 만나지 않는 경우
    elif r > r1+r2 or maxR > minR + r:
        print(0)
    # 이 외에 두점에서 만나는 경우
    else:
        print(2)
profile
기억보다 기록, 난리보다 정리

0개의 댓글