반응형
입력
낮에 A미터 올라갈 수 있다. 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다.
첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)
출력
달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다.
풀이
달팽이가 올라가는데 걸리는 날을 X라고 가정하자
달팽이가 낮에 정상에 닿았을 때, 내려가지 않음으로 밤은 X - 1번이 걸린다
X*A - B*(X - 1) >= V
이를 X 위주로 구해봤을 때
AX - BX + B >= V
X(A - B) >= V - B
X >= (V - B) / (A - B) 가 성립한다
달팽이가 낮에 한걸음에 정상에 도착했다면 위 식이 성립하지만,
닿기 전 미끄러져 다시 올라가야할 경우가 있으니 남은 거리가 0인지 알아보자
Swift 전체 코드
let input = readLine()!.split(separator: " ")
let a = Int(input[0])!
let b = Int(input[1])!
let v = Int(input[2])!
let value = (v - b) / (a - b)
(v - b) % (a - b) != 0 ? print(value + 1) : print(value)
반응형
'개발 > 알고리즘' 카테고리의 다른 글
[백준] 기본 수학 - 2839번 설탕 배달 (0) | 2021.03.30 |
---|---|
[백준] 기본 수학 - 2775번 부녀회장이 될테야 (0) | 2021.03.30 |
[백준] 기본수학 - 2292번 벌집 (0) | 2021.03.30 |
[백준] 기본 수학 - 1712번 손익분기점 (0) | 2021.03.30 |
알고리즘 공부를 하며 (0) | 2020.10.27 |