https://www.acmicpc.net/problem/2869
원래는 반복문을 통해 얼마나 걸리는지 계산하려고 했으나 시간제한을 보면 0.25초이고 최대가 10억이라 무조건 시간초과
가 뜬다 그렇기 때문에 일반화된 식을 통해 기간을 계산해야한다.
이때 먼저 낮에 A미터를 올라가고 밤에 B미터를 미끄러지기 때문에 일단 낮 밤을 합쳤을 때는 V-A 만큼을 가야하고 그 다음에는 A만큼만 가면 되기때문에 결국에는 V-A / A-B 를 계산한다음 낮에 한번 더 가야하니 1을 더해주면 답이 된다.
정답코드
#include "iostream"
#include "cmath"
using namespace std;
int main()
{
int a, b, v;
cin >> a >> b >> v;
int days = ceil((double)(v - a) / (a - b)) + 1;
cout << days;
return 0;
}
'코딩테스트 > 백준' 카테고리의 다른 글
[백준][C++]1978번. 소수 찾기 (0) | 2024.09.03 |
---|---|
[백준][C++]9506번. 약수들의 합 (0) | 2024.09.02 |
[백준][C++]2941번. 크로아티아 알파벳 (0) | 2024.08.29 |
[백준][C++]25206번. 너의 평점은 (0) | 2024.08.29 |
[백준][C++]1316번. 그룹 단어 체커 (0) | 2024.08.28 |