문제
https://www.acmicpc.net/problem/1002
풀이
조규현의 좌표에서 류재명과의 거리가 주어졌을 때, 류재명이 있을 수 있는 좌표는 어디일까요?
류재명은 이 보라색 테두리에 모두 위치해(무한대) 있을 수 있습니다.
그렇다면 조규현과 백승환의 좌표가 모두 주어진 경우를 확인해 봅시다.
이러한 경우에는 류재명이 2군데로 체크된 곳에 위치해 있을 수 있습니다.
아하 그렇다면 두 원이 서로 다른 두 점에서 만난다면? 류재명이 있을 수 있는 좌표는 2개가 되겠군요.
류재명이 있을 수 있는 좌표가 1개일 때는 어느 경우 일까요?
외접, 내접인 경우입니다.
류재명이 있을 수 있는 좌표가 없을 때는 두 원이 만나지 않는 경우겠네요!
마지막으로 류재명이 있을 수 있는 좌표가 무한대일 때는..?
두 원이 동심원이고, 반지름도 같을 때 입니다.
이제 두 원이 두 점에서 만나는 경우를 구해봅시다.
$r1 - r2 \lt d \lt r1 + r2$ 입니다.
거리(d)는 두 점의 거리이므로 $d = \sqrt{(x1 - x2)^2 + (y1 - y2)^2}$ 입니다.
두 원이 한점에서 만나는 경우는 외접과 내접이죠?
외접은 $r1 + r2 = d$ 내접은 $r2 - r1 = d$ 입니다.
무한대인 경우는? 동심원이고 반지름이 같을 때이므로
$d = 0 && r1 == r2$일 때입니다
그 외의 경우에는 두 원이 만나지 않는 경우입니다.
소스코드로 작성할 때, 저는 거리(d)에 루트를 씌우지 않고, 전부 제곱을 해준 형태로 구현하였습니다.
소스코드
후기
직접 그려서 확인하면서 어떤 방식으로 접근해야할 지 알게되었습니다.
내접, 외접.. 오랜만에 들어봤는데 공식이 잘 기억이 안나더라구요..😂
덕분에 오랜만에 수학 공식을 확인해봤습니다.. 다시 기억해야지..
'PS > 백준' 카테고리의 다른 글
[BOJ] 백준 15649 N과 M (1) (Swift) (0) | 2023.03.20 |
---|---|
[BOJ] 백준 1004 어린왕자 (Swift) (0) | 2023.03.18 |
[BOJ] 백준 2477 참외밭 (Swift) (1) | 2023.03.16 |
[BOJ] 백준 3009 네 번째 점 (Swift) (0) | 2023.03.16 |
[BOJ] 백준 1085 직사각형에서 탈출 (Swift) (0) | 2023.03.16 |