[파이썬] 백준 2869 달팽이는 올라가고 싶다
2021. 4. 26. 02:21ㆍ개발공부/알고리즘
문제를 보자마자 반복문으로 코드를 짜보았지만
runtime error😭
그래서 아래의 코드로 돌려보니
예제1,2는 잘 나오지만 3이 안나온다(따흐구ㅠ지ㅠㄹ쥬ㅠ륦퓨 ㅍㅍㅍ퓨ㅠㅠㅠ)
import math
a, b, v = map(int, input().split())
day = (a-b)
result = (day+day)/v
result2 = (float("%0.1f" % (result)))
#소수점 첫번째자리까지
if result2 >= 1:
print(math.ceil(result2))
#소수점 올림
else:
print(int(result2*10))
다른 코드들을 참고하며 다시 풀어보니 이렇게 간단한 코드였다니
import math
a, b, v = map(int, input().split())
# a = 낮 동안 올라가는 높이
# b = 밤 동안 내려오는 높이
# v = 나무 높이(top point)
# a - b = 하룻동안 올라가는 높이
day = math.ceil((v-a)/(a-b))+1
# v - a 해주는 이유: 마지막 날 정상에 도착했을땐 b가 없기때문에 a-b로 나눠줄 필요가 없다.
# 따라서 우선 마지막 날은 제외시키고 계산하기위해 a를 빼준다.
# 마지막 날을 제외한 나무 높이를 하룻동안 올라가는 높이(a-b)로 나눠준다.
# +1은 제외된 마지막 날 하루를 더해준다.
print(day)
- math.ceil: 소수점 올림
- 내림은 floor
- import math로 math모듈을 불러와줘야한다.
'개발공부 > 알고리즘' 카테고리의 다른 글
[파이썬] 백준 1037 약수 & 2609 최대공약수와 최소공배수 (0) | 2021.05.02 |
---|---|
[파이썬] 곱하기 or 더하기 - 페이스북 기출문제 (0) | 2021.05.02 |
[파이썬] 백준 2884 알람시계 (0) | 2021.05.02 |
[파이썬] 백준 10250 ACM호텔 (0) | 2021.05.02 |
[파이썬] 조건문, 반복문 (0) | 2021.04.21 |