[๋ฐฑ์ค/python] 1002๋ฒ : ํฐ๋
๋ฌธ์
์กฐ๊ทํ๊ณผ ๋ฐฑ์นํ์ ํฐ๋ ์ ๊ทผ๋ฌดํ๋ ์ง์์ด๋ค. ํ์ง๋ง ์๋ ์กด์ฌ๊ฐ์ด ์์ด์ ์ธ๊ตฌ์๋ ์ฐจ์งํ์ง ์๋๋ค. ๋ค์์ ์กฐ๊ทํ๊ณผ ๋ฐฑ์นํ์ ์ฌ์ง์ด๋ค.
์ด์์์ ์กฐ๊ทํ๊ณผ ๋ฐฑ์นํ์๊ฒ ์๋ํธ ๋ง๋ฆฐ(๋ฅ์ฌ๋ช )์ ์์น๋ฅผ ๊ณ์ฐํ๋ผ๋ ๋ช ๋ น์ ๋ด๋ ธ๋ค. ์กฐ๊ทํ๊ณผ ๋ฐฑ์นํ์ ๊ฐ๊ฐ ์์ ์ ํฐ๋ ์์น์์ ํ์ฌ ์ ๊น์ง์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ์ฐํ๋ค.
์กฐ๊ทํ์ ์ขํ (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์ ์ถ๋ ฅํ๋ค.
์ ๋ต
import sys
input = sys.stdin.readline
T = int(input())
point = [list(map(int, input().split())) for _ in range(T)]
for i in range(T):
# ๋ ์ ์ฌ์ด์ ๊ฑฐ๋ฆฌ
n = ((point[i][3] - point[i][0]) ** 2 +
(point[i][4] - point[i][1]) ** 2) ** 0.5
# ๊ฐ ์ ์์ ์ ๊น์ง์ ๊ฑฐ๋ฆฌ
k1, k2 = point[i][2], point[i][5]
# ๋ ์์ด ๊ฐ์ ๋
if n == 0 and k1 == k2:
print(-1)
# ๋ ์์ด ๊ฒน์ณ ๋ ์ ์์ ๋ง๋ ๋
elif abs(k2 - k1) < n < k1 + k2:
print(2)
# ๋ ์์ด ๋ด์ ํ๊ฑฐ๋ ์ธ์ ํ ๋
elif n == k1 + k2 or n == abs(k2 - k1):
print(1)
# ๋ ์์ด ๋ง๋์ง ์์ ๋
else:
print(0)
๊ฐ ์ ์์ ์ ๊น์ง์ ๊ฑฐ๋ฆฌ๋ฅผ ์ด์ฉํด ๊ฐ๋ฅํ ์ ์ ์์น์ ์งํฉ์ ๊ตฌํ๋ฉด ์์ด ๋๋ค.
๋ ์ ์ด๋ฏ๋ก ๋ ์์ด ๋์ค๊ณ ์ด๋ฅผ ์ด์ฉํ์ฌ ๋ ์์ด ๋ง๋๋ ๊ฒฝ์ฐ๋ฅผ ๋ฐ์ง๋ค.
'๐์๊ณ ๋ฆฌ์ฆ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค/python] 1541๋ฒ : ์์ด๋ฒ๋ฆฐ ๊ดํธ (0) | 2021.05.12 |
---|---|
[๋ฐฑ์ค/python] 2231๋ฒ : ๋ถํดํฉ (0) | 2021.05.11 |
[๋ฐฑ์ค/python] 2798๋ฒ : ๋ธ๋์ญ (0) | 2021.04.13 |
[๋ฐฑ์ค/python] 2579๋ฒ : ๊ณ๋จ ์ค๋ฅด๊ธฐ (0) | 2021.04.13 |
[๋ฐฑ์ค/python] 11054๋ฒ : ๊ฐ์ฅ ๊ธด ๋ฐ์ดํ ๋ ๋ถ๋ถ ์์ด (0) | 2021.04.13 |