๋ฌธ์
์กฐ๊ทํ๊ณผ ๋ฐฑ์นํ์ ํฐ๋ ์ ๊ทผ๋ฌดํ๋ ์ง์์ด๋ค. ์ด์์์ ์กฐ๊ทํ๊ณผ ๋ฐฑ์นํ์๊ฒ ์๋ํธ ๋ง๋ฆฐ(๋ฅ์ฌ๋ช )์ ์์น๋ฅผ ๊ณ์ฐํ๋ผ๋ ๋ช ๋ น์ ๋ด๋ ธ๋ค. ์กฐ๊ทํ๊ณผ ๋ฐฑ์นํ์ ๊ฐ๊ฐ ์์ ์ ํฐ๋ ์์น์์ ํ์ฌ ์ ๊น์ง์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ์ฐํ๋ค.
์กฐ๊ทํ์ ์ขํ (x1, y1)์ ๋ฐฑ์นํ์ ์ขํ (x2, y2)๊ฐ ์ฃผ์ด์ง๊ณ , ์กฐ๊ทํ์ด ๊ณ์ฐํ ๋ฅ์ฌ๋ช ๊ณผ์ ๊ฑฐ๋ฆฌ r1๊ณผ ๋ฐฑ์นํ์ด ๊ณ์ฐํ ๋ฅ์ฌ๋ช ๊ณผ์ ๊ฑฐ๋ฆฌ r2๊ฐ ์ฃผ์ด์ก์ ๋, ๋ฅ์ฌ๋ช ์ด ์์ ์ ์๋ ์ขํ์ ์๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ํ ์คํธ ์ผ์ด์ค์ ๊ฐ์ T๊ฐ ์ฃผ์ด์ง๋ค. ๊ฐ ํ ์คํธ ์ผ์ด์ค๋ ๋ค์๊ณผ ๊ฐ์ด ์ด๋ฃจ์ด์ ธ ์๋ค.
ํ ์ค์ x1, y1, r1, x2, y2, r2๊ฐ ์ฃผ์ด์ง๋ค. x1, y1, x2, y2๋ -10,000๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 10,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ ์์ด๊ณ , r1, r2๋ 10,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๋ค.
์ถ๋ ฅ
๊ฐ ํ ์คํธ ์ผ์ด์ค๋ง๋ค ๋ฅ์ฌ๋ช ์ด ์์ ์ ์๋ ์์น์ ์๋ฅผ ์ถ๋ ฅํ๋ค. ๋ง์ฝ ๋ฅ์ฌ๋ช ์ด ์์ ์ ์๋ ์์น์ ๊ฐ์๊ฐ ๋ฌดํ๋์ผ ๊ฒฝ์ฐ์๋ -1์ ์ถ๋ ฅํ๋ค.
ํ์ด
์์ ์์น ๊ด๊ณ๋ฅผ ์ด์ฉํ๋ ๋ฌธ์ ์ด๋ค. ๊ฐ ์์ ์ค์ฌ ๊ฐ์ ๊ฑฐ๋ฆฌ๋ฅผ D๋ผ๊ณ ํ๊ณ , ํฐ ์์ ๋ฐ์ง๋ฆ์ R, ์์ ์์ ๋ฐ์ง๋ฆ์ r์ด๋ผ๊ณ ํ ๋,
01. ๊ต์ ์ด ๋ฌดํ๋์ธ ๊ฒฝ์ฐ(๋์ผํ ์์ผ ๊ฒฝ์ฐ)
์ค์ฌ ๊ฐ์ ๊ฑฐ๋ฆฌ๊ฐ 0์ด๊ณ ๋ฐ์ง๋ฆ์ด ๋์ผ(D==0, R==r)
02. ๊ต์ ์ด 2๊ฐ
03. ๊ต์ ์ด 1๊ฐ
๋ด์ ์, ์ธ์ ์ ์ด 2๊ฐ์ง์ ๊ฒฝ์ฐ๊ฐ ์๋ค.
04. ๊ต์ ์ด 0๊ฐ
์ด ์ธ์ ๊ฒฝ์ฐ๊ฐ ์ฌ๊ธฐ์ ํด๋นํ๋ค. ๊ณต์์ ์์ผ๋ ๊ทธ๋ฅ else๋ก ์ฒ๋ฆฌํด์ฃผ๋ ๊ฒ ํธํ๋ค.
#include <iostream>
#include <algorithm> // swap
#include <cmath> // sqrt, pow
using namespace std;
int main() {
int T, x1, y1, r1, x2, y2, r2;
cin >> T;
for (int i=0; i<T; i++){
cin >> x1 >> y1 >> r1 >> x2 >> y2 >> r2;
if (r2 > r1){ // ํญ์ r1์ด r2๋ณด๋ค ํฌ๋๋ก
swap(r1, r2);
}
double distance = sqrt(pow(x1-x2,2) + pow(y1-y2, 2));
// 00. ๊ต์ ๋ฌดํ๊ฐ(๋์ผํ ์)
if (distance == 0 && r1==r2)
cout << -1;
// 01. ๊ต์ 2๊ฐ( R-r < d < R+r )
else if (distance < (r1+r2) && distance > (r1-r2))
cout << 2;
// 02. ๊ต์ 1๊ฐ(์ธ์ , ๋ด์ )
else if (distance == (r1+r2) || distance == (r1-r2))
cout << 1;
// 03. ๊ต์ 0๊ฐ
else
cout << 0;
cout << "\n";
}
}
๊ทธ๋ฆผ ์ถ์ฒ https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=junhyuk7272&logNo=221139170814
'โจ Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค/C++] 5585๋ฒ : ๊ฑฐ์ค๋ฆ๋ (0) | 2021.08.15 |
---|---|
[๋ฐฑ์ค/C++] 10872๋ฒ : ํฉํ ๋ฆฌ์ผ(์ฌ๊ท) (0) | 2021.08.14 |
[๋ฐฑ์ค/C++] 3053๋ฒ : ํ์ ๊ธฐํํ (PI ์ฌ์ฉ) (0) | 2021.08.13 |
[๋ฐฑ์ค/C++] 4153๋ฒ : ์ง์ฌ๊ฐํ (0) | 2021.08.13 |
[๋ฐฑ์ค/C++] 3009 : ๋ค ๋ฒ์งธ ์ (0) | 2021.08.12 |
๋๊ธ