백준 2869 달팽이는 올라가고 싶다 풀이

1 분 소요

문제

https://www.acmicpc.net/problem/2869

&Title
2869번 - 달팽이는 올라가고 싶다

&Question
땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 
나무 막대를 올라갈 것이다.달팽이는 낮에 A미터 올라갈 수 있다. 
하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 
올라간 후에는 미끄러지지 않는다.달팽이가 나무 막대를 모두 올라가려면, 며칠이 
걸리는지 구하는 프로그램을 작성하시오. 

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

&Output
첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 
걸리는지 출력한다. 

&Example
-input
2 1 5

-output
4

요약

  • 높이가 V인 막대를 낮에는 A만큼 올라가고, 밤에는 B만큼 내려간다. 모두 올라가는데 며칠이 걸리는가?

접근

  • 하루 동안 올라갈 수 있는 값이 A-B라는 점을 유의하며 식을 세운다.

풀이

  1. 처음에 V = V - A 를 해준다. 최종적으로 올라가고 목표를 도달하기 때문에 미리 하나 올라가는 것
  2. V / (A - B) + (V % (A - B) == 0 ? 0 : 1)를 하면 A-B로 나눈값 + 나머지가 있을 경우 1을 추가하게 된다. 그리고 미리 한번 올라갔기 때문에 1을 더해주면 답이 나온다.

소스

#include <iostream>
using namespace std;

int main() {
	int A, B, V, res;
	cin >> A >> B >> V;
	V -= A;
	res = V / (A - B) + (V % (A - B) == 0 ? 0 : 1) + 1;
	cout << res << endl;
	return 0;
}

댓글남기기