반응형

문제

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


한번쯤 봤던 문제일 것이다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import sys
 
A,B,V=map(int,sys.stdin.readline().split())
 
result=0
if A>=V:    #하루만에 도착할경우
        result=1
else:
    V = V - A   #마지막 날을 먼저 빼주고 시작한다.
    if V%(A-B)==0:  #정확히 도착했을때
            result += (V // (A - B) + 1)
    else:   #조금남고 다음날 도착할수 잇을때
            result+=(V//(A-B)+2)
 
print(result)
cs


for문을 돌려서 풀수도 있지만 시간제한이 있어서 이런방식으로 풀었다.

이 문제의 핵심은 마지막날이다. 평소라면 (올라가는거리)-(미끄러지는거리)로 계산이

 되지만 마지막날은 미끄러지지 않는다.

나는 먼저 꼭대기에서부터 올라가는 거리를 빼주고 계산을 시작했다.

이제 남는 거리는  (올라가는거리)-(미끄러지는거리)로 나눠서 계산해도 되며 딱 

떨어진다면 몫에서 하루만 더가면 될것이고

그게 아니라면 2일을 더가면 될것이다.



반응형

'알고리즘(python) > 수학' 카테고리의 다른 글

[Python]수학 백준 2775  (0) 2019.12.20
[Python]수학 백준 10250  (0) 2019.12.19
[Python]수학 백준 1193  (0) 2019.12.19
[Python]수학 백준 2292  (0) 2019.12.19
[Python]수학 백준 2839  (0) 2019.12.19
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기