본문 바로가기

PS/BOJ

[C++] BOJ (백준) 2869 : 달팽이는 올라가고 싶다

문제

2869번: 달팽이는 올라가고 싶다 (acmicpc.net)

 

2869번: 달팽이는 올라가고 싶다

첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)

www.acmicpc.net

코드
#include <iostream>
#include <cmath>

using namespace std;

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

  int a, b, v;
  cin >> a >> b >> v;
  cout << (int) ceil((double) (v - a) / (a - b)) + 1;
  return 0;
}

 

설명

달팽이가 나무 막대를 올라갈 때 A미터 올라가고 B미터 내려가므로 ceil(V / (A-B)) 일이 걸릴 것이다.
그러나 나무 막대에 도착한 이후에는 내려가지 않으므로 마지막으로 내려가는 것을 제외하면 ceil((V-A) / (A-B)) + 1 일이 걸린다.