기하학
#기하학
백준 1004번 : 어린 왕자
1. 풀이
t = int(input())
for i in range(t):
count = 0
x1, y1, x2, y2 = map(int, input().split())
n = int(input())
for i in range(n):
px, py, pr = map(int, input().split())
# **2는 제곱 **0.5는 루트를 씌운 것과 같다.
# d1은 시작점부터 한 점까지의 거리
d1 = (((x1 - px) ** 2) + ((y1 - py) ** 2)) ** 0.5
# d2는 도착점부터 한 점까지의 거리
d2 = (((x2 - px) ** 2) + ((y2 - py) ** 2)) ** 0.5
# 시작점과 도착점을 기준으로 한 점의 반지름을 체크
if (d1 < pr and d2 > pr) or (d1 > pr and d2 < pr):
count += 1
print(count)
중간의 행성을 피하는 것은 우주선이 할 일이고, 알고리즘은 출발점이나 도착점이 행성의 내부에 위치한 것을 체크하면 된다.
Last updated