백준 2869 달팽이는 올라가고 싶다

devmonkey·2021년 3월 8일
0
post-thumbnail

문제를 보자마자 반복문으로 코드를 짜보았지만
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모듈을 불러와줘야한다.
profile
매일 배우고 성장 중 담는 개인기록

0개의 댓글

관련 채용 정보