https://www.acmicpc.net/problem/1002
๋ฌธ์
์กฐ๊ทํ๊ณผ ๋ฐฑ์นํ์ ํฐ๋ ์ ๊ทผ๋ฌดํ๋ ์ง์์ด๋ค. ํ์ง๋ง ์๋ ์กด์ฌ๊ฐ์ด ์์ด์ ์ธ๊ตฌ์๋ ์ฐจ์งํ์ง ์๋๋ค. ๋ค์์ ์กฐ๊ทํ๊ณผ ๋ฐฑ์นํ์ ์ฌ์ง์ด๋ค.
์ด์์์ ์กฐ๊ทํ๊ณผ ๋ฐฑ์นํ์๊ฒ ์๋ํธ ๋ง๋ฆฐ(๋ฅ์ฌ๋ช )์ ์์น๋ฅผ ๊ณ์ฐํ๋ผ๋ ๋ช ๋ น์ ๋ด๋ ธ๋ค. ์กฐ๊ทํ๊ณผ ๋ฐฑ์นํ์ ๊ฐ๊ฐ ์์ ์ ํฐ๋ ์์น์์ ํ์ฌ ์ ๊น์ง์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ์ฐํ๋ค.
์กฐ๊ทํ์ ์ขํ์ ๋ฐฑ์นํ์ ์ขํ๊ฐ ์ฃผ์ด์ง๊ณ , ์กฐ๊ทํ์ด ๊ณ์ฐํ ๋ฅ์ฌ๋ช ๊ณผ์ ๊ฑฐ๋ฆฌ๊ณผ ๋ฐฑ์นํ์ด ๊ณ์ฐํ ๋ฅ์ฌ๋ช ๊ณผ์ ๊ฑฐ๋ฆฌ๊ฐ ์ฃผ์ด์ก์ ๋, ๋ฅ์ฌ๋ช ์ด ์์ ์ ์๋ ์ขํ์ ์๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ํ ์คํธ ์ผ์ด์ค์ ๊ฐ์๊ฐ ์ฃผ์ด์ง๋ค. ๊ฐ ํ ์คํธ ์ผ์ด์ค๋ ๋ค์๊ณผ ๊ฐ์ด ์ด๋ฃจ์ด์ ธ ์๋ค.
ํ ์ค์ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ ๋ ์ฌ์ฏ ์ ์๊ฐ ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
๊ฐ ํ ์คํธ ์ผ์ด์ค๋ง๋ค ๋ฅ์ฌ๋ช ์ด ์์ ์ ์๋ ์์น์ ์๋ฅผ ์ถ๋ ฅํ๋ค. ๋ง์ฝ ๋ฅ์ฌ๋ช ์ด ์์ ์ ์๋ ์์น์ ๊ฐ์๊ฐ ๋ฌดํ๋์ผ ๊ฒฝ์ฐ์๋ -1์ ์ถ๋ ฅํ๋ค.
ํ์ด
๋น์ฐํ ๋ฅ์ฌ๋ช ์จ์ ์์น๊ฐ ์ ์๋ผ๊ณ ์๊ฐํด์ ๋ถ๋ฅดํธํฌ์ค๋ก ์ ์ ์ขํ๋ค์ ๋ค ๊ฒ์ฌํ๋๋ 25%์์ ํ๋ ธ์ต๋๋ค๊ฐ ๋ด๋คใ ..
์ ํํ๋ ๋ต์ด ๋ฌดํ์ธ ๊ฒฝ์ฐ๋ฅผ ๊ฐ๊ณผํ๋ฉด 25%์์ ํ๋ ธ์ต๋๋ค๊ฐ ๋ฌ๋ค.
๋ฅ์ฌ๋ช ์จ๋ ์์น๊ฐ ์ ์๊ฐ ์๋์๋ ์์์ ๊ณ ๋ คํ์ !!
๊ณ ๋ฑํ๊ต ์2 (์ด์ ๊ต์ก๊ณผ์ ๋ฏธ์ ๋ถ ๋๋ ๊ทธ ์ ์คํ๊ต ๊ณผ์ ) ์ด๋๊ฐ์์ ๋ค๋ฃจ๋ '๋ ์์ ์์น๊ด๊ณ'๋ฅผ ์ด์ฉํด์ ๊ตฌํ๋ง ํ๋ฉด ๋๋ค
#include <iostream>
using namespace std;
int t, x1,x2,y1,y2,r1,r2;
int distance(int x, int y, int a, int b) {
return (x-a)*(x-a) + (y-b)*(y-b);
}
int solution() {
int distance = (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2);
int rPlus = (r1+r2)*(r1+r2);
int rMinus = (r1-r2)*(r1-r2);
if(r1==r2 && distance==0) {
return -1;
}
if(rMinus==distance || rPlus==distance) {
return 1;
}
if(rMinus<distance && distance<rPlus) {
return 2;
}
return 0;
}
int main() {
cin >> t;
while(t--) {
cin >> x1 >> y1 >> r1 >> x2 >> y2 >> r2;
cout << solution() << "\n";
}
return 0;
}
'๐ BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ][C++] ๋ฐฑ์ค 1037๋ฒ: ์ฝ์ (0) | 2024.03.08 |
---|---|
[BOJ][C++] ๋ฐฑ์ค 2849๋ฒ: ํ์ด์ ๋ฐํด (0) | 2024.03.06 |
[BOJ][C++] ๋ฐฑ์ค 14503๋ฒ: ๋ก๋ด ์ฒญ์๊ธฐ (0) | 2023.11.23 |
[BOJ][C++] ๋ฐฑ์ค 2839๋ฒ: ์คํ ๋ฐฐ๋ฌ (0) | 2023.11.02 |
[BOJ][C++] ๋ฐฑ์ค 1296๋ฒ: ๋์นญ ์ฐจ์งํฉ (0) | 2023.10.16 |