반응형
https://www.acmicpc.net/problem/2869
처음 짠 코드:
A, B, V = map(int, input().split())
day=1
while V>0:
V-=A
if V<=0:
break
V+=B
day+=1
print(day)
하지만 문제에서 시간제한이 역시나 시간 초과가 나왔다. 반복문 같은 것들을 쓰지 않고 바로 출력해야 시간 안에 가능할 것 같았다.
수정한 코드:
import math
A, B, V = map(int, input().split())
print(math.ceil((V-A)/(A-B))+1)
먼저 달팽이는 하루에 A-B만큼 올라가고, 달팽이가 낮에 정상에 올라가면 더 이상 미끄러지지 않으므로 먼저 정상에서 A만큼 빼서 (V-A)/(A-B)를 해주고, 먼저 뺏던 하루를 더해줬다. 이때, 나눈 몫이 2.x, 3.x 등과 같이 정수로 나누어 떨어지지 않는 경우에는 0.x일도 하루로 쳐야 하기 때문에 올림을 해줬다.
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[python 파이썬] 백준 2775번: 부녀회장이 될테야 (0) | 2019.12.23 |
---|---|
[python 파이썬] 백준 10250번: ACM 호텔 (0) | 2019.12.22 |
[python 파이썬] 백준 1193번: 분수찾기 (2) | 2019.12.20 |
[python 파이썬] 백준 1316번: 그룹 단어 체커 (2) | 2019.12.19 |
[python 파이썬] 백준 2941번: 크로아티아 알파벳 (0) | 2019.12.18 |