가오리의 코딩일기
[11662] 민호와 강호 본문
def three_search(start, end):
while abs(end - start) > 1e-9:
mid1 = (2 * start + end) / 3
mid2 = (start + 2 * end) / 3
if distance(mid1) > distance(mid2):
start = mid1
else:
end = mid2
return distance(start)
def distance(i):
minX = ax * i + bx * (1 - i)
minY = ay * i + by * (1 - i)
kangX = cx * i + dx * (1 - i)
kangY = cy * i + dy * (1 - i)
return ((kangX - minX) ** 2 + (kangY - minY) ** 2) ** 0.5
ax, ay, bx, by, cx, cy, dx, dy = map(int, input().split())
print(round(three_search(0,1),16))
참고 블로그 : https://velog.io/@blankspxcx/%EC%82%BC%EB%B6%84-%ED%83%90%EC%83%89-Tenary-Search
'Python > 백준' 카테고리의 다른 글
[1476] 날짜 계산 (0) | 2022.08.08 |
---|---|
[1744] 수 묶기 (0) | 2022.08.06 |
[2875] 대회 or 인턴 (0) | 2022.08.05 |
[11399] ATM (0) | 2022.08.05 |
[1931] 회의실 배정 (0) | 2022.08.05 |