Lumpy Space Princess - Adventure Time
코딩테스트/백준

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

yaebb_82 2022. 8. 24.

 

문제

 

 

 

작성한 코드

import sys, math

input = sys.stdin.readline

A, B, V = map(int, input().split())

day = (V - B) / (A - B)

print(math.ceil(day))
- 달팽이가 하루에 올라가는 길이 : A-B
- 달팽이가 총 올라가는 길이 : day * (A-B)
- 달팽이가 올라가야 하는 길이 : V-B
   (정상에 올라가서 미끄러져 내려가는 것을 고려해서 미리 B만큼 빼줬다고 생각하면 된다.)

[식]
(V-B) = day * (A-B)
→ 정리 : day = (V-B) / (A-B)
→ 소수로 나오는 경우가 있어, 올림을 해줘야 한다.

-  sys.stdin.readline을 input에 할당하여 사용한다.

- input()으로 문자를 입력받고, split()으로 구분한 뒤, int형으로 형변환하여 map으로 A, B, V에 각각 할당한다.

- 위에 정리한 식을 사용하여 달팽이가 막대를 모두 올라가는 데에  걸리는 일 수를 구한다.

- math 모듈을 import 해주어 print()할 때, math.ceil()을 사용하여 day의 값을 올림처리 해주어 출력한다.

 

 

cf.) 처음에 반복문을 사용해서 코드를 작성했는데, 시간 초과로 실패하였다. 이후 단순 식으로 해결해야 한다는 것을 알게 되었다.

 

 

 

반응형

'코딩테스트 > 백준' 카테고리의 다른 글

백준 [2775] - 부녀회장이 될테야  (0) 2022.08.25
백준 [10250] - ACM 호텔  (0) 2022.08.25
백준 [1193] - 분수찾기  (0) 2022.08.24
백준 [2292] - 벌집  (0) 2022.08.24
백준 [1712] - 손익분기점  (0) 2022.08.23

댓글