[UVa #10114] Loansome Car Buyer

tolelom·2022년 7월 6일
0

UVa

목록 보기
18/20

문제 설명

문제 링크
자동차를 대출해서 산 상황 대출금을 매달 갚아간다고 했을 때
자동차의 감가상각된 가치와 남은 대출금을 비교해 자동차의 가치보다 남은 대출금이 더 커지는 지점은 몇 달 후인가?

알고리즘

자동차 가치 = 대출금 + 계약금
대출금 = 대출금
으로 세팅하고
자동차 가치 *= (1 - 감가상각비율)
대출금 -= (총 대출금 / 대출 기간)
으로 비교해가면 되는 문제

코드

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#define INF 1000000000

int t;

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);


    for (int tc = 1; ; tc++){
        int loanDur, nDep;
        double downPayment, loan;
        cin >> loanDur >> downPayment >> loan >> nDep;

        if (loanDur < 0)
            break;

        double dep[101];
        while(nDep--) {
            int m; double p;
            cin >> m >> p;
            for (int i = m; i <= 100; ++i)
                dep[i] = p;
        }


        double car = (loan + downPayment) * (1.0 - dep[0]);
        double pay = loan / loanDur;
        int now = 0;
        while (car < loan) {
            now++;
            loan -= pay;
            car = car * (1.0 - dep[now]);
        }
        
        cout << now << " month";
        if (now != 1) cout << "s";
        cout << '\n';
    }
}

느낀 점...

오늘 최고로 고생한 문제
UVa 문제가 독해가 많이 필요해서 시간이 많이 필요한데 거기에 확률 문제가 더해져서 독해하는 것도 어려웠고 구현해놓고 0달 째 이미 자동차의 감가상각된 가치보다 대출금이 큰 상황을 처리하지 못해서 오래 해맸다.

profile
이것 저것 작성하는 기술 블로그

0개의 댓글