[브론즈1]백준 2869번(달팽이는 올라가고 싶다) - 코테공부 37일차(2025.02.27)
2025. 2. 27. 15:01
반응형
문제유형
수학
풀이 방법 도출 과정
1. 땅 위의 달팽이가 V미터인 나무 막대를 올라간다. 달팽이는 낮에 A미터 올라가는데 밤에는 B미터 떨어진다. 달팽이가 나무 막대를 모두 올라가려면, 몇일 걸리는지 구하는 문제
2. 입력: A, B, V
3. 예제 분석
1일차: (A - B)
2일차: (A - B) + (A - B)
3일차: (A - B) + (A - B) + (A - B)
일반화 하면 (A - B) x (n - 1) + A
4. 이식을 변형하면 (A - B) x (n - 1) + A >= V
이것을 n에 관하여 정리하면 다음과 같아진다. n >= V-A/A-B + 1 그런데 이가 마지막 날에는 미끌어지지 않기 때문에 +1를 삭제한다.
시간 복잡도
시간 복잡도는 O(1)이다.
코드 및 간단설명
수학을 사용하였다.
import math
A, B, V = map(int, input().split())
n = math.ceil((V - B) / (A - B))
print(n)
다른 풀이
1) 다른 구현 방법
달팽이는 마지막 날 낮에 정상에 도달하므로, 마지막 날에 올라갈 a를 미리 빼서 그 전까지 올라가야 하는 거리를 v에 저장하는 방법을 사용해서 시간복잡도를 더욱 줄이는 방법도 있다.
a, b, v = map(int, input().split())
v -= a
print((v-1) // (a-b) + 2)
반응형
'Coding Test (코딩 테스트)' 카테고리의 다른 글
[브론즈1]백준 28702번(FizzBuzz) - 코테공부 39일차(2025.03.05) (0) | 2025.03.05 |
---|---|
[브론즈1]백준 11050번(이항 계수 1) - 코테공부 38일차(2025.03.04) (0) | 2025.03.04 |
[골드5]백준 12865번(평범한 배낭) - 코테공부 36일차(2025.02.26) (0) | 2025.02.26 |
[브론즈1]백준 2775번(부녀회장이 될테야) - 코테공부 36일차(2025.02.26) (0) | 2025.02.26 |
[브론즈1]백준 2609번(최대공약수와 최소공배수) - 코테공부 35일차(2025.02.25) (0) | 2025.02.25 |