[SWEA][Python3] 1245. [S/W 문제해결 응용] 2일차 - 균형점
2019. 5. 17. 01:07 |
프로그래밍/삼성 SWEA
나의 풀이 :
T = int(input())
for tc in range(1, T + 1):
N = int(input())
line = list(map(int, input().split()))
X = line[:N]
M = line[N:]
ans = []
for i in range(1, N):
low = X[i-1]
high = X[i]
while high - low > 1 / (10**12):
mid = (low + high) / 2
left = right = 0
for i in range(N):
force = M[i] / (mid-X[i])**2
if X[i] < mid:
left += force
else:
right += force
if left < right:
high = mid
else:
low = mid
ans.append(mid)
print('#%s %s' % (tc, ' '.join('%.10f' % f for f in ans)))
한마디 :
이진 탐색으로 오차 범위 아래까지 균형점을 찾아간다.
'프로그래밍 > 삼성 SWEA' 카테고리의 다른 글
[SWEA][Python3] 1259. [S/W 문제해결 응용] 7일차 - 금속막대 (0) | 2019.05.29 |
---|---|
[SWEA][Python3] 1265. [S/W 문제해결 응용] 9일차 - 달란트2 (0) | 2019.05.29 |
[SWEA][Python3] 4112. 이상한 피라미드 탐험 (0) | 2019.05.27 |
[SWEA][Python3] 1798. 범준이의 제주도 여행 계획 (0) | 2019.05.23 |
[SWEA][Python3] 1248. [S/W 문제해결 응용] 3일차 - 공통조상 (0) | 2019.05.18 |
[SWEA][Python3] 1849. 영준이의 무게측정 (0) | 2019.05.16 |
[SWEA][Python3] 1247. [S/W 문제해결 응용] 3일차 - 최적 경로 (0) | 2019.05.09 |
[SWEA][Python3] 5357. 터널 속의 기차 (0) | 2019.05.02 |
최근에 달린 댓글 최근에 달린 댓글