๋ฌธ์ ๋ถ์
์ฒซ ๋ฒ์งธ ๋จ๊ณ(๋ฌธ์ ์์ฝ ๋ฐ ์กฐ๊ฑด ํ์
)
์ด๋ฆฐ์์์ ์ฐ์ฃผ์ ์ ํ์ฑ๊ณ ๊ฐ์ ์ด๋์ ์ต๋ํ ํผํด์ ์ฌํํด์ผ ํจ.

- ๋นจ๊ฐ ์ค์ : ์ถ๋ฐ์ ์์ ๋์ฐฉ์ ๊ฐ์ง ๋๋ฌํ๋ ๋ฐ ์์ด ํ์ฑ๊ณ ์ง์
, ์ดํ ํ์๋ฅผ ์ต์ํํ๋ ๊ฒฝ๋ก
- ์: ํ์ฑ๊ณ์ ๊ฒฝ๊ณ
์ ์ด๋ 3๋ฒ์ ํ์ฑ๊ณ ์ง์
/์ดํ ํ์
โ ์ํ์ ์ง๋, ์ถ๋ฐ์ , ๋์ฐฉ์ ์ด ์ฃผ์ด์ก์ ๋ ์ด๋ฆฐ ์์์๊ฒ ํ์ํ ์ต์์ ํ์ฑ๊ณ ์ง์
/์ดํ ํ์๋ฅผ ๊ตฌํ๊ธฐ.
ํ์ฑ๊ณ ๊ฒฝ๊ณ๊ฐ ๋ง๋ฟ๊ฑฐ๋ ์๋ก ๊ต์ฐจํ๋ ๊ฒฝ์ฐ, ์ถ๋ฐ์ /๋์ฐฉ์ ์ด ํ์ฑ๊ณ ๊ฒฝ๊ณ์ ๊ฑธ์ณ์ง ๊ฒฝ์ฐ x
์ฒซ๋ฒ์งธ ์ค) ํ
์คํธ ์ผ์ด์ค ๊ฐ์ T
๊ทธ ๋ค์ ์ค) ๊ฐ๊ฐ์ ํ
์คํธ ์ผ์ด์ค์ ๋ํด ์ฒซ์งธ ์ค์ ์ถ๋ฐ์ (x1, y1)๊ณผ ๋์ฐฉ์ (x2, y2) ์ฃผ์ด์ง.
๋๋ฒ์งธ ์ค) ํ์ฑ๊ณ ๊ฐ์ n
์ธ๋ฒ์งธ ์ค~n๋ฒ์งธ ์ค) ํ์ฑ๊ณ ์ค์ ๊ณผ ๋ฐ์ง๋ฆ(cx, cy, r)
๊ฐ ํ
์คํธ ์ผ์ด์ค์ ๋ํด ํ์ฑ๊ณ ์ง์
/์ดํ ํ์์ ์ต์๊ฐ.
- ์ ํ
- 1000 โค x1, y1, x2, y2, cx, cyย โค 1000
- 1 โค r โค 1000
- 1 โค n โค 50
- ์ขํ์ ๋ฐ์ง๋ฆ์ ๋ชจ๋ ์ ์
๋ ๋ฒ์งธ ๋จ๊ณ (๋ฌธ์ ํต์ฌ ํ์
)
์ต๋ํ ์์ ์ ๋ฟ๊ฒ ํ๋๊ฒ ์ข๋ค.
๋ฐ๋ผ์ ์ด๋ค ๊ฒฝ์ฐ์ ๋ฐ๋์ ์์ ์ง๋์ผ ํ๋์ง, ์ง๋์ง ์์๋ ๋๋์ง ์๊ฐํด๋ณด์.
-
์์์ , ์ถ๋ฐ์ ์ด ๋ ์ค ํ๋๋ง ํ์ฑ๊ณ ๋ด๋ถ์ ์์ ๊ฒฝ์ฐ
ํด๋น ํ์ฑ๊ณ๋ฅผ ๋ฐ๋์ ์ง๋๊ฐ์ผ ํจ.
-
์์์ , ์ถ๋ฐ์ ์ด ๋ ๋ค ํ์ฑ๊ณ ๋ด๋ถ or ์ธ๋ถ์ ์์ ๊ฒฝ์ฐ
ํ์ฑ๊ณ๋ฅผ ์ ์ง๋๊ฐ๋ ๋จ.
๊ทธ๋ ๋ค๋ฉด, ์์ ๋ด๋ถ์ ์ ์ด ์๋์ง ์๋์ง ํ๋ณํ๋ ๋ฐฉ๋ฒ?
ํ์ฑ๊ณ ์ค์ ๊ณผ ์์์ or ์ถ๋ฐ์ ์ฌ์ด์ ๊ฑฐ๋ฆฌ > ๋ฐ์ง๋ฆ : ํ์ฑ๊ณ ์ธ๋ถ์ ์ .
ํ์ฑ๊ณ ์ค์ ๊ณผ ์์์ or ์ถ๋ฐ์ ์ฌ์ด์ ๊ฑฐ๋ฆฌ < ๋ฐ์ง๋ฆ : ํ์ฑ๊ณ ๋ด๋ถ์ ์ .
โ ๋ชจ๋ ์์ ๋ํด์ ๋ฐ๋์ ์ง๋์ผ ํ๋ ์ง ์ฌ๋ถ๋ฅผ ๊ฒ์ฌํ๊ณ , ์ง๋์ผ ํ๋ ์์ ๊ฐ์ ์ถ๋ ฅ.
์ฝ๋ ์์ฑ
import math
t = int(input())
for _ in range(t): # ํ
์คํธ ์ผ์ด์ค
# ์ถ๋ฐ์ (x1, y1)๊ณผ ๋์ฐฉ์ (x2, y2)
x1, y1, x2, y2 = map(int, input().split())
n = int(input()) # ํ์ฑ๊ณ ๊ฐ์
ans = 0 # ์์ ์ง๋๋ ๊ฐ์
for _ in range(n):
cx, cy, r = map(int, input().split())
# ๊ฑฐ๋ฆฌ ๊ณ์ฐ
start_to_mid = math.sqrt((x1 - cx) ** 2 + (y1 - cy) ** 2)
fin_to_mid = math.sqrt((x2 - cx) ** 2 + (y2 - cy) ** 2)
# ํ์ฑ๊ณ ๋ด๋ถ์ ์
# ์ถ๋ฐ์
if start_to_mid < r and fin_to_mid < r: # ๋๋ค ์์ ์์ ๊ฒฝ์ฐ ํ์ฑ๊ณ๋ฅผ ์์ง๋๊ฐ๋ ๋จ.
pass
elif start_to_mid < r:
ans += 1
elif fin_to_mid < r:
ans += 1
print(ans)
๋๋์
1. or์ ํ์ (?)
import math
t = int(input())
for _ in range(t): # ํ
์คํธ ์ผ์ด์ค
# ์ถ๋ฐ์ (x1, y1)๊ณผ ๋์ฐฉ์ (x2, y2)
x1, y1, x2, y2 = map(int, input().split())
n = int(input()) # ํ์ฑ๊ณ ๊ฐ์
# ์ง๋์ผ ํ๋ ์์ ๊ฐ์
ans = 0
for _ in range(n):
cx, cy, r = map(int, input().split())
# ํ์ฑ๊ณ ๋ด๋ถ์ ์
if math.sqrt((x1 - cx) ** 2 + (y1 - cy) ** 2) < r or math.sqrt((x2 - cx) ** 2 + (y2 - cy) ** 2) < r:
ans += 1
print(ans)
์์ ๊ฐ์ด ์ฒ์์๋ ํ์ฑ๊ณ ๋ด๋ถ์ ์ ์ ์กฐ๊ฑด์์ or๋ก ํ๋๋ฐ, ํ๋ ธ๋ค๊ณ ํด์ ์์ํ๋ค.
์์ง? ํ 20๋ถ ๊ณ ๋ฏผํ๋..
or์ด๋ฉด ์กฐ๊ฑด์1์ด ์ฐธ์ด๊ฑฐ๋ ์กฐ๊ฑด์2์ด ์ฐธ์ด๊ฑฐ๋ ํน์ ๋๋ค ์ฐธ์ผ๋๋ ์ฐธ์ธ๊ฑฐ๋ค.
๋ฐ๋ผ์ ๊ฐ๊ฐ์ ์กฐ๊ฑด๋ฌธ์ผ๋ก ๊ฑธ์ด์ฃผ๊ณ , and ์กฐ๊ฑด์ผ๋๋ pass ์์ผ์ผ ํจ์ ๊นจ๋ฌ์๋ค.
๊ธฐ๋ณธ์ด ๊ฐ์ฅ ์ค์ํ๋ค๋๊น..
2. ๊ทธ๋ฆผ ๋ณด๊ณ ์ซ์ง ๋ง๊ณ ์ด์ฉํ ๊ฐ๋
์๊ฐํด๋ณด๊ธฐ
๊ทธ๋ฆฌ๊ณ ๋ฌธ์ ๊ทธ๋ฆผ๋ณด๊ณ ์ซ์๋๋ฐ(์๊ณผ ๊ณก์ ) ps์์ ์ฌ์ฉ๋ ๊ฐ๋
์ ์ํ์์ ๊ธฐ์ด์ ์ธ ๋ ์ ์ฌ์ด์ ๊ฑฐ๋ฆฌ ๋ฟ์ด๋ค. ์ซ์ง ๋ง์.
๋ฌธ์ ๋ถ์
์ฒซ ๋ฒ์งธ ๋จ๊ณ(๋ฌธ์ ์์ฝ ๋ฐ ์กฐ๊ฑด ํ์ )
์ด๋ฆฐ์์์ ์ฐ์ฃผ์ ์ ํ์ฑ๊ณ ๊ฐ์ ์ด๋์ ์ต๋ํ ํผํด์ ์ฌํํด์ผ ํจ.

์ ์ด๋ 3๋ฒ์ ํ์ฑ๊ณ ์ง์ /์ดํ ํ์
โ ์ํ์ ์ง๋, ์ถ๋ฐ์ , ๋์ฐฉ์ ์ด ์ฃผ์ด์ก์ ๋ ์ด๋ฆฐ ์์์๊ฒ ํ์ํ ์ต์์ ํ์ฑ๊ณ ์ง์ /์ดํ ํ์๋ฅผ ๊ตฌํ๊ธฐ.
ํ์ฑ๊ณ ๊ฒฝ๊ณ๊ฐ ๋ง๋ฟ๊ฑฐ๋ ์๋ก ๊ต์ฐจํ๋ ๊ฒฝ์ฐ, ์ถ๋ฐ์ /๋์ฐฉ์ ์ด ํ์ฑ๊ณ ๊ฒฝ๊ณ์ ๊ฑธ์ณ์ง ๊ฒฝ์ฐ x
์ฒซ๋ฒ์งธ ์ค) ํ ์คํธ ์ผ์ด์ค ๊ฐ์ T
๊ทธ ๋ค์ ์ค) ๊ฐ๊ฐ์ ํ ์คํธ ์ผ์ด์ค์ ๋ํด ์ฒซ์งธ ์ค์ ์ถ๋ฐ์ (x1, y1)๊ณผ ๋์ฐฉ์ (x2, y2) ์ฃผ์ด์ง.
๋๋ฒ์งธ ์ค) ํ์ฑ๊ณ ๊ฐ์ n
์ธ๋ฒ์งธ ์ค~n๋ฒ์งธ ์ค) ํ์ฑ๊ณ ์ค์ ๊ณผ ๋ฐ์ง๋ฆ(cx, cy, r)
๊ฐ ํ ์คํธ ์ผ์ด์ค์ ๋ํด ํ์ฑ๊ณ ์ง์ /์ดํ ํ์์ ์ต์๊ฐ.
๋ ๋ฒ์งธ ๋จ๊ณ (๋ฌธ์ ํต์ฌ ํ์ )
์ต๋ํ ์์ ์ ๋ฟ๊ฒ ํ๋๊ฒ ์ข๋ค.
๋ฐ๋ผ์ ์ด๋ค ๊ฒฝ์ฐ์
๋ฐ๋์ ์์ ์ง๋์ผํ๋์ง, ์ง๋์ง ์์๋ ๋๋์ง ์๊ฐํด๋ณด์.์์์ , ์ถ๋ฐ์ ์ด ๋ ์ค ํ๋๋ง ํ์ฑ๊ณ ๋ด๋ถ์ ์์ ๊ฒฝ์ฐ
ํด๋น ํ์ฑ๊ณ๋ฅผ ๋ฐ๋์ ์ง๋๊ฐ์ผ ํจ.
์์์ , ์ถ๋ฐ์ ์ด ๋ ๋ค ํ์ฑ๊ณ ๋ด๋ถ or ์ธ๋ถ์ ์์ ๊ฒฝ์ฐ
ํ์ฑ๊ณ๋ฅผ ์ ์ง๋๊ฐ๋ ๋จ.
๊ทธ๋ ๋ค๋ฉด, ์์ ๋ด๋ถ์ ์ ์ด ์๋์ง ์๋์ง ํ๋ณํ๋ ๋ฐฉ๋ฒ?
ํ์ฑ๊ณ ์ค์ ๊ณผ์์์ or์ถ๋ฐ์ ์ฌ์ด์ ๊ฑฐ๋ฆฌ >๋ฐ์ง๋ฆ: ํ์ฑ๊ณ ์ธ๋ถ์ ์ .ํ์ฑ๊ณ ์ค์ ๊ณผ์์์ or์ถ๋ฐ์ ์ฌ์ด์ ๊ฑฐ๋ฆฌ <๋ฐ์ง๋ฆ: ํ์ฑ๊ณ ๋ด๋ถ์ ์ .โ ๋ชจ๋ ์์ ๋ํด์ ๋ฐ๋์ ์ง๋์ผ ํ๋ ์ง ์ฌ๋ถ๋ฅผ ๊ฒ์ฌํ๊ณ , ์ง๋์ผ ํ๋ ์์ ๊ฐ์ ์ถ๋ ฅ.
์ฝ๋ ์์ฑ
๋๋์
1. or์ ํ์ (?)
์์ ๊ฐ์ด ์ฒ์์๋ ํ์ฑ๊ณ ๋ด๋ถ์ ์ ์ ์กฐ๊ฑด์์ or๋ก ํ๋๋ฐ, ํ๋ ธ๋ค๊ณ ํด์ ์์ํ๋ค.
์์ง? ํ 20๋ถ ๊ณ ๋ฏผํ๋..
or์ด๋ฉด ์กฐ๊ฑด์1์ด ์ฐธ์ด๊ฑฐ๋ ์กฐ๊ฑด์2์ด ์ฐธ์ด๊ฑฐ๋ ํน์ ๋๋ค ์ฐธ์ผ๋๋ ์ฐธ์ธ๊ฑฐ๋ค.
๋ฐ๋ผ์ ๊ฐ๊ฐ์ ์กฐ๊ฑด๋ฌธ์ผ๋ก ๊ฑธ์ด์ฃผ๊ณ , and ์กฐ๊ฑด์ผ๋๋ pass ์์ผ์ผ ํจ์ ๊นจ๋ฌ์๋ค.
๊ธฐ๋ณธ์ด ๊ฐ์ฅ ์ค์ํ๋ค๋๊น..
2. ๊ทธ๋ฆผ ๋ณด๊ณ ์ซ์ง ๋ง๊ณ ์ด์ฉํ ๊ฐ๋ ์๊ฐํด๋ณด๊ธฐ
๊ทธ๋ฆฌ๊ณ ๋ฌธ์ ๊ทธ๋ฆผ๋ณด๊ณ ์ซ์๋๋ฐ(์๊ณผ ๊ณก์ ) ps์์ ์ฌ์ฉ๋ ๊ฐ๋ ์ ์ํ์์ ๊ธฐ์ด์ ์ธ
๋ ์ ์ฌ์ด์ ๊ฑฐ๋ฆฌ๋ฟ์ด๋ค. ์ซ์ง ๋ง์.(https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=occidere&logNo=221048019075)](https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=occidere&logNo=221048019075)