728x90
반응형

블로그에 올리는 모든 문제 풀이는 깃허브에 올려져 있습니다.


문제 설명

  • 높이가 V미터인 나무 막대를 올라가는 달팽이는 낮에 A미터 올라갈 수 있고, 밤에 잠을 자는 동안 B미터 미끄러진다. 단, 정상에 올라간 후에는 미끄러지지 않는다. (1 <=B <A <=V <=1,000,000,000)
  • 달팽이가 나무막대를 모두 올라가려면 며칠이 걸리는지 구하는 프로그램을 작성하시오.

풀이 전략

  • 달팽이는 하루에 A-B미터씩 총 x미터를 올라감
  • x는 달팽이가 목표지점에 도달한 날에는 미끄러지지 않으므로 총 V-B미터와 같고 (V-B)/(A-B)가 딱 나눠 떨어지지 않으면 하루 더 가므로 몫에 +1을 해야 함
  • 따로 구분할 필요 없이 (V-B)에 1을 미리 빼놓고 몫에 무조건 1을 더하는 것으로 처리 

소스 코드

#include <iostream>

using namespace std;
int main()
{
	int a, b, v;
	cin >> a >> b >> v;
	
	cout << (v - b - 1) / (a - b) + 1;
}

링크

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

 

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

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

www.acmicpc.net

 

728x90
반응형

'문제풀이 > BOJ' 카테고리의 다른 글

[C++ 백준] 10250 ACM 호텔  (0) 2021.05.29
[C++ 백준] 2941 크로아티아 알파벳  (0) 2021.05.28
[C++ 백준] 2839 설탕 배달  (0) 2021.05.26
[C++ 백준] 2292 벌집  (0) 2021.05.25
[C++ 백준] 1085 직사각형에서 탈출  (0) 2021.05.24