https://www.acmicpc.net/problem/2869
낮에는 A미터 올라가고, 밤에는 B미터 미끄러지는 달팽이가 V미터를 올라가기 위해 필요한 날의 수를 구하는 문제이다.
#include <iostream>
#include <string>
using namespace std;
int main(){
int a, b, v;
cin >> a >> b >> v;
int one_day = a-b;
int remain = v - a;
int answer = 1;
if (remain <= 0){
cout << answer;
} else {
if (remain % one_day == 0)
answer += remain / one_day;
else
answer += remain / one_day + 1;
cout << answer;
}
}
필요한 날의 경우 최소 하루는 필요하다.(문제의 조건이 V > 1)
달팽이가 정상에 도달하면 미끄러지지 않는다는 점을 이용해, V-A를 B로 나눈 값을 구하면 된다.(마지막 날에 A만큼 올라가면 미끄러지지 않으므로.)
이때, B로 나눗셈을 할 시에 나머지가 생긴다면, 이는 하루를 더 올라가야 함을 의미한다. 이를 잘 구분하여 처리해주면 된다.
'알고리즘 > 백준' 카테고리의 다른 글
백준 1085번 직사각형에서 탈출 [C++] (0) | 2023.12.02 |
---|---|
백준 11653번 소인수분해 [C++] (0) | 2023.11.27 |
백준 1193번 분수찾기 [C++] (0) | 2023.11.26 |
백준 2292번 벌집 [C++] (0) | 2023.11.26 |
백준 2903번 중앙 이동 알고리즘 [C++] (1) | 2023.11.26 |