Notice
Recent Posts
Recent Comments
Link
개발스토리
백준 2869)달팽이는 올라가고 싶다 본문
https://www.acmicpc.net/problem/2869
실패한 코드(시간 초과)
a, b, v = map(int, input().split(' '))
day = 1
day_one = a - b
while True:
if day_one >= v:
print(day)
break
else:
day += 1
if day_one * (day - 1) + a >= v:
print(day)
break
성공한 코드
import sys
import math
a, b, v = map(int, sys.stdin.readline().split(' '))
day_one = a - b
day = (v-a) / day_one + 1
print(math.ceil(day))
시간 초과에 안 걸리기 위해서 입력 방식도 바꾸고, math.ceil을 사용해서 계산 방식을 바꿨다.
v - a는 막대 길이에서 마지막 날 올라간 거리를 뺀 것이고, v - a를 하루동안 하루동안 올라가는 거리인 day_one으로 나눴다. 그 결과에서 1을 더해주어야 정상에 올라간 day를 구할 수 있다. 그리고 나누기 과정에서 ceil 함수를 통해 올림 처리 해주었다. (4.4일은 4일이 아니라 5일이기 때문이다.)
'알고리즘' 카테고리의 다른 글
백준 10809)알파벳 찾기 (0) | 2020.12.28 |
---|---|
DFS(깊이 우선 탐색) (0) | 2020.12.19 |
크루스칼 / 다익스트라 알고리즘 (0) | 2020.11.20 |
최소 비용 신장 트리 정의와 프림 알고리즘 (0) | 2020.11.20 |
Backtracking_동전 던지기 (0) | 2020.11.12 |
Comments