[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 | 
최근에 달린 댓글 최근에 달린 댓글