[c++/알고리즘] 백준 2869번 달팽이는 올라가고 싶다

corncheese·2021년 7월 20일
0

알고리즘문제풀이

목록 보기
12/31


풀릴듯 말듯 안풀린 문제 ㅠㅗㅠ
나 수학 정말 못하나봐..

차근차근 생각해보자.

예제 1을 생각했을때,
하루에 [2만큼 올라가고 정상에 도달하지 못했을 경우, 1만큼 내려가고] 를 반복하며 5에 도달하거나 5보다 더 크게 갔을때의 날짜를 출력하면 된다.
-> 2n - 1(n-1) >= 5
-> n = 4 가 정답이 된다.

a*n - b(n-1) >= v 인 수식을 계산하면
n >= (v-b)/(a-b)를 출력하면 된다.

// 백준 2869번 달팽이는 올라가고싶다.
#include <iostream>

using namespace std;

int main() {
    int a, b, v;
    cin >> a >> b >> v;
	
    // 나머지가 존재할 경우 달팽이는 1일을 더 가야하야 정상에 도달한다
    if((v-b)%(a-b) != 0 ){
        cout << (v-b)/(a-b)+1;
    }
    // 나머지가 0인경우 달팽이는 n일만에 정상에 도달.
    else cout << (v-b)/(a-b);
}

0개의 댓글