치춘짱베리굿나이스
[백준] 2869 달팽이는 올라가고 싶다 본문
달팽이는 올라가고 싶다
문제
땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다.
달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다.
달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오.
입력
첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)
출력
첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다.
풀이
#include <stdio.h>
int main(void)
{
unsigned long long a;
unsigned long long b;
unsigned long long v;
scanf("%lld %lld %lld", &a, &b, &v);
if ((v - a) % (a - b) == 0)
printf("%llu", (v - a) / (a - b) + 1);
else
printf("%llu", (v - a) / (a - b) + 2);
}
반성회
제한시간이 빡빡 + 변수의 범위가 과하게 넓어서 식으로 풀지 않으면 못 푸는 문제
낮 + 밤까지 총 a - b만큼의 거리를 움직이게 되는데 마지막날엔 a만큼만 더 올라가면 되므로
v - a (총 거리에서 a를 뺀 만큼 = 마지막날 전날까지 올라가는 거리) 에서 a - b를 나눈 나머지가 0일땐 1을, 그 외엔 2를 더해주면 된다
'C C++ > 알고리즘풀이' 카테고리의 다른 글
[백준] 4153 직각삼각형 (0) | 2021.09.08 |
---|---|
[백준] 1085 직사각형에서 탈출 (0) | 2021.09.08 |
[백준] 10430 나머지 (0) | 2021.09.07 |
[백준] 10871 X보다 작은 수 (0) | 2021.09.05 |
[백준] 10809 알파벳 찾기 (0) | 2021.09.05 |
Comments