[C++] 백준 2869 | 달팽이는 올라가고 싶다

heige·2023년 12월 27일
0

BOJ

목록 보기
29/46
post-thumbnail

문제

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

풀이

  1. V <= A
    밤까지 가지 않아도 되는 경우, 하루 낮으로 올라갈 수 있는 경우
    그렇기 때문에 길이 V에서 낮의 이동거리 A를 먼저 빼준다.

정상에 도착하면 밤에 미끄러지지 않으므로 마지막 날엔 낮의 이동(a)으로 정상에 무조건 간다. 일단 v에서 낮의 이동거리 a를 먼저 빼준다. (v-a)를 가지고 다음 케이스들 생각해보기.

  1. (v - a) % (a - b) 가 0이 아닌 경우

나머지가 있다는 것은, 이동일이 (v - a) / (a - b) + 1이 되어야 한다는 뜻
최종은 (v - a) / (a - b) + 2

  1. (v - a) % (a - b) 가 0인 경우

딱 떨어지므로 이동일이 (v - a) / (a - b)이다.
최종은 (v - a) / (a - b) + 1

#include <bits/stdc++.h>
using namespace std;
int main() {
  int a, b, v;
  int day;
  cin >> a >> b >> v;
  if(v <= a) 
    day = 1;
  else {
    if ((v-a)%(a-b)) 
      day = (v-a)/(a-b) + 2;
    else 
      day = (v-a)/(a-b) + 1;
  }
  cout << day;
  return 0;
}
profile
웹 백엔드와 클라우드 정복을 위해 탄탄한 기반을 쌓아가고 있는 예비개발자입니다. 'IT You Up'은 'Eat You Up'이라는 표현에서 비롯되어, IT 지식을 끝까지 먹어치운다는 담고 있습니다.

0개의 댓글