기본 콘텐츠로 건너뛰기

라벨이 백준인 게시물 표시

[백준 알고리즘 문제 풀이] 1002. 터렛 풀이 파이썬 코드

문제 확인하러 가기 문제 풀이 이 문제는 두 원의 교점의 개수를 찾는 문제입니다. 두 원의 교점의 개수는 두 원의 중심 사이의 거리와 각 원의 반지름에 따라 달라집니다. 먼저, 두 원의 중심 사이의 거리를 계산합니다. 이 거리는 두 점 사이의 거리 공식을 사용하여 계산할 수 있습니다. 다음으로, 이 거리를 각 원의 반지름과 비교합니다. 두 원의 중심이 같고 반지름이 같다면, 두 원은 완전히 겹치므로 류재명이 있을 수 있는 위치의 개수는 무한대입니다. 이 경우 -1을 반환합니다. 두 원의 중심 사이의 거리가 두 원의 반지름의 합보다 작고, 두 원의 반지름 차보다 크다면, 두 원은 서로 두 점에서 만납니다. 이 경우 2를 반환합니다. 두 원의 중심 사이의 거리가 두 원의 반지름의 합과 같거나, 두 원의 반지름 차와 같다면, 두 원은 서로 한 점에서 만납니다. 이 경우 1을 반환합니다. 그 외의 경우, 즉 두 원의 중심 사이의 거리가 두 원의 반지름의 합보다 크거나, 두 원의 반지름 차보다 작다면, 두 원은 서로 만나지 않습니다. 이 경우 0을 반환합니다. 이렇게 각 테스트 케이스마다 류재명이 있을 수 있는 위치의 수를 출력하면 문제를 해결할 수 있습니다. 코드 import math def find_location(t): x1, y1, r1, x2, y2, r2 = t distance = math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2) if distance == 0 and r1 == r2: return -1 elif abs(r1 - r2) < distance < (r1 + r2): return 2 elif distance == r1 + r2 or distance == abs(r1 - r2): return 1 else: return 0 test_cases = int(input()) for _ in ran...