짱해커가 되어보자

boj 2869 본문

프로그래밍_일반/백준

boj 2869

Spadework 2019. 12. 2. 14:42

문제

이번 문제는 달팽이 문제로 잘 알려져 있는 문제이다
달팽이가 V 높이를 올라가는게 목표이며, 낮에 A만큼 올라간 후 밤에 B 만큼 내려간다
정상에 올라간 이후에는 미끄러지지 않으며, 예외에 대한 입력은 받지 않는다

입력 : V, A, B
출력 : 정상까지 올라는데 걸리는 일 수

풀이

import math
a, b, v = map(int, input().split())
print(math.ceil((v-a) / (a-b)) + 1)

문제의 풀이의 시간이 0.15초인 점과 입력 최대가 10억인 점을 보았을 때 단순 반복으로는 안된다

  1. 정상에 도착했을 때는 미끄러지지 않는다 : (v-a) 로 시작
  2. 낮에 A만큼 올라가고 밤에 B만큼 미끄러진다 : (a-b) * c

그렇기에 (v-a)까지 (a-b) * c 로 걸리는 카운트와 처음 -a를 한 카운트(+1)를 더해주면 된다

'프로그래밍_일반 > 백준' 카테고리의 다른 글

boj 2193  (0) 2019.12.02
boj 3052  (0) 2019.12.02
boj 2562  (0) 2019.12.02
boj 2753  (0) 2019.11.29
boj 2588  (0) 2019.11.29
Comments