문제 링크
자동차를 대출해서 산 상황 대출금을 매달 갚아간다고 했을 때
자동차의 감가상각된 가치와 남은 대출금을 비교해 자동차의 가치보다 남은 대출금이 더 커지는 지점은 몇 달 후인가?
자동차 가치 = 대출금 + 계약금
대출금 = 대출금
으로 세팅하고
자동차 가치 *= (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달 째 이미 자동차의 감가상각된 가치보다 대출금이 큰 상황을 처리하지 못해서 오래 해맸다.