몽상실현개발주의

[Algospot] 이분법 / LOAN / Python 파이썬 본문

Algorithm PS/Algospot

[Algospot] 이분법 / LOAN / Python 파이썬

migrationArc 2021. 9. 22. 14:40

 

[Algospot] 이분법 / LOAN / Python 파이썬

https://www.algospot.com/judge/problem/read/LOAN#

 

algospot.com :: LOAN

전세금 균등상환 문제 정보 문제 집을 떠나 혼자 살게 된 재훈이는 회사 근처의 전세집을 알아보고 있습니다. 전세금은 N원인데, 재훈이는 이것을 연이율 P%로 대출받을 수 있습니다. 재훈이는 M

www.algospot.com

 

풀이

대출금의 연 이자를 특정 개월 수로 균등상환 하였을때, 상환 금액을 이분법을 이용하여 구하는 문제이다.

 

이분법을 시작 할 때, hi 금액은 할부금을 값지 않은 상황인 "원금+이자" 가 된다.

 

T = int(input())


def checkC(N, M, P, C):
    for _ in range(M):
        N += (N * P / 12 / 100)
        N -= C
    return N


for _ in range(T):
    N, M, P = input().split()
    N = float(N)
    M = int(M)
    P = float(P)

    # 가장 큰 금액 - 원금 + 이자 : 할부금은 한번도 값지 않은 상황
    hi = N + (N * P / 12 / 100)
    lo = 0
    C = (hi+lo) / 2

    for _ in range(100):
        if checkC(N, M, P, C) < 0:
            hi = C
            C = (hi+lo) / 2
        else:
            lo = C
            C = (hi+lo) / 2
    print(C)

 

Comments