반지름이 각각 r1과 r2인 두 개의 동심원(중심이 같은 원)이 있다고 가정해 보겠습니다. 여기에 추가로 중심 좌표 coord와 반지름 값 r이 주어집니다. 우리가 확인해야 할 것은, coord를 중심으로 하는 반지름 r짜리 원이 주어진 두 동심원이 형성하는 경계 영역 안에 완전히 들어가는지 여부입니다.
예를 들어 입력이 r1 = 4, r2 = 2, coord = (3, 0), r = 1이라면 결과는 True입니다.

풀이 접근 방법
이 문제는 기하학적 거리 계산만으로 간단하게 해결할 수 있습니다. 핵심 아이디어는 다음과 같습니다.
- 먼저 원점에서 좌표 (x, y)까지의 거리 val을 피타고라스 정리를 이용해 구합니다. 즉, val = √(x² + y²)
- 작은 원이 바깥쪽 경계를 벗어나지 않으려면, 중심 거리에 반지름을 더한 값이 바깥 원의 반지름 이하여야 합니다. 즉, val + r ≤ r1
- 동시에 작은 원이 안쪽 경계를 침범하지 않으려면, 중심 거리에서 반지름을 뺀 값이 허용되는 최소 거리 이상이어야 합니다. 즉, val − r ≥ r1 − r2
- 두 조건을 모두 만족하면 True를, 하나라도 만족하지 않으면 False를 반환합니다.
아래 구현 예제를 통해 더 자세히 이해해 보겠습니다.
예제 코드
from math import pow, sqrt def solve(r1, r2, coord, r) : val = sqrt(pow(coord[0], 2) + pow(coord[1], 2)) if val + r <= r1 and val - r >= r1 - r2 : return True return False r1 = 4 r2 = 2 coord = (3, 0) r = 1 print(solve(r1, r2, coord, r))
입력
4,2,(3, 0),1
출력
True
위 코드에서 solve 함수는 먼저 coord 좌표와 원점 사이의 거리를 계산한 뒤, 앞서 설명한 두 조건식을 검사하여 원이 경계 안에 완전히 포함되는지 판별합니다. 시간 복잡도는 O(1)로, 상수 시간 안에 결과를 얻을 수 있습니다.