백준/단계별
[백준] 2869번 : 달팽이는 올라가고 싶다 (C++)
_mi_ni_01
2021. 8. 24. 18:27
https://www.acmicpc.net/problem/2869
2869번: 달팽이는 올라가고 싶다
첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)
www.acmicpc.net
이번 문제는 낮엔 올라가고 밤엔 미끄러지는 달팽이가 정상에 도탁할때까지 며칠이 걸리는지 구하는 문제입니다.
어릴 때 이런 수학문제를 풀었던것 같은데 이젠 컴퓨터로 풀고 있네요 ,,ㅎ,,,,,
처음에 반복문으로 풀었더니 시간 초과가 떠서 반복문을 사용 할수가 없더라구요 ㅜ
풀이)
v-a까지 올라가는데 day일이 걸린다고 쳤을때 다음날 a를 올라가 정상에 도착할수 있게 됩니다.
그렇다면 day+1일만에 v까지 도착하게 되는것이지요
그래서 v-a/a-b가 나누어 떨어지면 총 day+1일이 소요되고
나누어 떨어지지 않는다면 조금더 가야해서 day+2일이 소요됩니다.
이를 바탕으로 코드를 작성하면 성공!!_!
#include <iostream>
using namespace std;
int main() {
int v, a, b, day = 0;
cin >> a >> b >> v;
day += (v - a) / (a - b);
if ((v - a) % (a - b) == 0) cout << day + 1;
else
cout << day + 2;
return 0;
}