문제
https://www.acmicpc.net/problem/2869
2869번: 달팽이는 올라가고 싶다
첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)
www.acmicpc.net
소스코드
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
ios_base::sync_with_stdio(false), cin.tie(NULL);
long long a, b, v;
cin >> a >> b >> v;
long long dif = a - b;
long long last = v - a;
long long ans = last / dif;
if (last % dif) ans++;
cout << ans + 1;
}
해설
하루에 올라가는 거리는 a-b를 뺀 거리가 됩니다.
그리고 최종 목적지에 도착하려면 v-a 거리까지만 도착하게되면 무조건 다음날에는 +a만큼 올라가기 때문에 목적지에 도착할 수 있다.
만약 나머지가 0이면 바로 목적지에 갈 수 있다는 의미이고
나머지가 있으면 하루를 더 올라가야 목적지에 도착할 수 있는 환경을 만들 수 있다.
쉽게 생각하면 나머지가 있으면 5.2일이라 치면 무조건 6일이 되어야 하는 의미로 올림처리 해주는 의미이다.
'Algorithm > math' 카테고리의 다른 글
[백준] 알고리즘 C++ 6588번 - 골드바흐의 추측문제 (0) | 2021.11.10 |
---|---|
[백준] 알고리즘 C++ 4153번 - 직각삼각형문제 (0) | 2021.11.04 |
[백준] 알고리즘 C++ 2775번 - 부녀회장이 될테야문제 (0) | 2021.10.17 |
[백준] 알고리즘 C++ 1085번 - 직사각형에서 탈출 (0) | 2021.09.30 |
[백준] C++ 알고리즘 17425번 - 약수의 합 (0) | 2021.05.27 |