반응형
[ Contents ]
1. 문제 (링크 참조)
2. 문제 풀이
출발지(x1, y1)부터 어린왕자가 도착지(x2, y2)까지 행성 여행을 합니다. N개의 행성들이 주어지며, 최대한 행성들을 지나치지 않고 가야 합니다.
중간에 아무리 가로막고 있어도, 우회해서 갈 수 있습니다. 따라서, 출발지와 도착지를 감싸는 행성계만 찾으면 됩니다.
3. 코드
import sys
input = sys.stdin.readline
# 입력
T = int(input())
for _ in range(T):
x1, y1, x2, y2 = map(int, input().split())
res = 0 # 거치는 행성계
n = int(input())
for _ in range(n):
x, y, r = map(int, input().split())
start = ((x1-x)**2 + (y1-y)**2)**0.5 # 출발지에서 행성 중심까지의 거리
end = ((x2-x)**2 + (y2-y)**2)**0.5 # 도착지에서 행성 중심까지의 거리
# 모두 안에 있으면 지나갈 필요 없음
if start < r and end < r:
pass
# 시작점이나 도착점이 안에 있을 경우 +1
elif start < r:
res += 1
elif end < r:
res += 1
print(res)
만약 출발지와 도착지 모두 감싸고 있다면, 굳이 지나갈 필요가 없으므로 무시합니다.
반응형
'Algorithm' 카테고리의 다른 글
[구현/수학] 백준 2547 사탕 선생 고창영 - 파이썬(Python) (0) | 2022.11.18 |
---|---|
[구현/문자열] 백준 5354 J박스 - 파이썬(Python) (0) | 2022.11.17 |
[Greedy/그리디] 백준 14487 욱제는 효도쟁이야!! - 파이썬(Python) (0) | 2022.11.15 |
[DP/수학] 백준 16395 파스칼의 삼각형 - 파이썬(Python) (0) | 2022.11.14 |
[구현/수학] 백준 11945 뜨거운 붕어빵 - 파이썬(Python) (0) | 2022.11.13 |
댓글