본문으로 바로가기
문제

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일이 되어야 하는 의미로 올림처리 해주는 의미이다.