-
728x90
* 접근한 방식
- 두 원의 교점 수를 구하는 방법을 적용(우측 사진)
- 류재명 위치가 무한대 = 같은 원을 의미
└ d == 0 이고, r1 == r2
- 교점 1개(내접 또는 외접)
└ d == r1 - r2(r1 > r2) 또는 d == r1 + r2
- 교점 2개
└ r1 - r2 < d < r1 + r2(r1>r2)
- 위 3개에 해당하지 않는 경우, 교점 0개#include <iostream>#include <math.h>using namespace std;int main(){int x1, y1, r1, x2, y2, r2;double d;int T = 0;cin >> T;for (int i = 0; i < T; i++){cin >> x1 >> y1 >> r1 >> x2 >> y2 >> r2;d = sqrt(pow(x2 - x1, 2) + pow(y2 - y1, 2));if (d == 0 && r1 == r2) // 같은 원cout << -1 << "\n";else if (d == abs(r1 - r2) || d == r1 + r2) // 내접, 외접cout << 1 << "\n";else if (abs(r1 - r2) < d && d < r1 + r2) // 교점 2개인 원cout << 2 << "\n";elsecout << 0 << "\n";}}데롱디롱희희.. (๑′ᴗ‵๑)
'알고리즘 풀이 > 백준' 카테고리의 다른 글
[11729] 하노이 탑 이동 순서(C++) (0) 2020.04.27 [2447] 백준 : 별 찍기 - 10(C++) (0) 2020.04.26 [3053] 택시 기하학(C++) (0) 2020.04.26 [4153] 백준 : 직각삼각형(C++) (0) 2020.04.26 [3009] 백준 : 네 번째 점(C++) (0) 2020.04.26