풀이
두 좌표를 기준으로 반지름만큼의 원이 형성될 때 원의 둘레가 겹치는 좌표의 개수를 구하면 된다.
아래의 그림은 주어진 Test Case에 대한 시각화 자료이다.
만약 입력으로 주어지는 두 원이, 동일한 좌표와 반지름을 가진다면 '류재명'이 있을 수 있는 위치는 무한대이다.
두 원의 정보에 대한 입력을 struct Circle을 통해 입력받고, 두 원의 중심거리(d)와 두 원의 반지름의 차(diff_radius), 두 원의 반지름의 합(sum_radius)을 구해서 다음과 같은 비교를 통해 문제를 해결할 수 있다.
- 입력받은 두 원의 정보가 동일하다면 류재명이 있을 수 있는 위치는 무한대이다.
- d == sum_radius 이거나, d == diff_radius(아래 그림 참고)이면 한 접점에서만 만난다.
- d < sum_radius 이고, diff_radius < d 이면 두 접점에서 만난다.
- 위의 조건이 성립하지 않으면 두 원의 접점은 없다.
소스코드
출처
'PS > Baekjoon Online Judge' 카테고리의 다른 글
[백준 1012] 유기농 배추 [Python] (0) | 2022.06.04 |
---|---|
[백준 11050] 이항 계수 1 [C] (0) | 2022.04.03 |
[백준 2352] 반도체 설계 [C] (0) | 2021.09.05 |
[백준 10800] 컬러볼 [C] (0) | 2021.09.05 |
[백준 1377] 버블 소트 [C] (0) | 2021.09.05 |