나는 왜 이렇게 어렵게 문제를 접근하는 걸까......... 🥹
울고 싶다................
처음엔 이게 뭔 소린가 했다.
자.. 이 알고리즘의 문제점은 도착 정점에 도달하지 않을 가능성도 있다는 것이다. 물론 -1000 <-> -1000이라는 제한이 있지만, 절대 효율적이지 않다.
모든 경우의 수를 다 방문하고 그 중에서 최소값만 취하는 것이기 때문에 경로가 진짜 이상하게 나올 것이다.
구현하다가 탈락..
행성 경계선을 미리 그래프에 그리고 회피하면서 선택해서 가려고 했음
어떻게 그리지..? 에-바
그리고 회피하며 선택하는데 갇힐 확률이 존재한다.
1. 경계선을 넘나드는 횟수 count의 기준
우주선은 알아서 행성을 잘 피해 가겠지,, 라는 생각으로 이 문제를 접근했어야 한다.
import math
n = int(input())
for i in range(0, n):
start_x, start_y, end_x, end_y = map(int, input().split(' '))
num = int(input())
cnt = 0
planet = []
for j in range(0, num):
x = list(map(int, input().split(' ')))
planet.append(x)
for j in range(0, num):
if (math.sqrt((start_x - planet[j][0])**2 + (start_y - planet[j][1])**2) < planet[j][2] and math.sqrt((end_x - planet[j][0])**2 + (end_y - planet[j][1])**2) > planet[j][2]) or(
math.sqrt((start_x - planet[j][0])**2 + (start_y - planet[j][1])**2) > planet[j][2] and math.sqrt((end_x - planet[j][0])**2 + (end_y - planet[j][1])**2) < planet[j][2]):
cnt += 1
print(cnt)
연산식이 너무 길다.
그리고 함수로 따로 빼는 방법이 더 좋을거 같다.
규칙을 단순화해서 생각하자
복잡하고 어렵게 접근하지 말자
제발..
플리쥬..🥹