최소 스패닝 트리 문제들을 부시다가 2차원 직선 길이를 구하는 문제를 만났다.
제곱 문법은 아는데 루트 문법은 몰라서 파이썬 공식 문서의 math 모듈을 참고하다가 다음과 같은 친구를 만났다.
math.dist(p, q)
두 점이 같은 차원일 경우 두 점 사이의 거리를 구해준다는데..!
import math
print(math.dist([1, 2], [2, 3]))
# 1.4142135623730951
파이썬 공식 문서는 참고하면 참고할 수록 코테에 큰 도움이 된다..
내가 짜고 있던 2차원 직선 길이 공식은 아래와 같았다.
def line(a, b):
x = (a[0] - b[0]) ** 2
y = (a[1] - b[1]) ** 2
return round((x + y) ** 0.5, 2)
2차원으로 고정되어 있기 때문에 위의 math.dist보다 안 좋다.
python 3.8부터 새로 나왔다는데 알아두면 좋을 것 같당!
아무튼 루트는 다음과 같다.
math.sqrt(x)
이렇게도 할 수 있다.
x ** 0.5