링크 : https://www.acmicpc.net/problem/
- 문제



- 설계하기(접근방법)
나무의 높이 V미터
낮에 A미터 - 밤에 B 미터
1. A, B ,V를 입력받는다
2. 높이 변수 h를 선언해준다,
3. h +=A와 h -=B를 반복해주어 h가 V를 넘는 순간 break한다.
->반복문으로 인해 시간초과 발생
재설계
1. a, b, v 를 입력받는다 ex) 9 7 18
2. 하루에 올라가는 높이(one_day_up)를 변수로 선언하여 저장한다. ex ) 2
3. 정점에 도달했을 때는 미끄러지지 않을테니 정점에서 처음 올라갈때의 높이를 구해준다 -> (v - a) ex) 9
4. v-a를 one_day_up으로 나누어준다. ex) 4.5
5. 소수점 자리가 남는경우는 즉 v-a를 넘어서려면 한번 더 올라가야 한다는 의미이니
math 패키지의 ceil 메서드를 사용하여 올림을 적용한다.
6. 처음 (v-a)에 도달하고, 한번 더 올라가면 정점에 다다를 때이니 +1을 해준다.
- 코드(출력)
첫번째 코드(시간초과)
a, b, v = map(int, input().split()) # 5 1 6
h = 0
cnt = 1
while (cnt):
h += a
if (h >= v):
break
h -= b
cnt += 1
두번째 코드(성공)
import math
a, b, v = map(int, input().split()) # 2 1 5
one_day_up = a - b # 1
result = math.ceil((v - a) / one_day_up) + 1
print(result)
- 얻어갈 부분
1. 시간 제한이 걸린 문제의 경우, 반복문을 사용하기보단 문제를 논리적으로 나누어 반복문을 사용하지 않는 식으로 완성한다.
'알고리즘(백준) > 기타' 카테고리의 다른 글
| [백준] 2775번 : 부녀회장이 될테야 - python (0) | 2023.02.08 |
|---|---|
| [백준] 10250번 : ACM 호텔 - python (0) | 2023.02.07 |
| [백준] 1193번 : 분수찾기 - python (0) | 2023.02.05 |
| [알고리즘/] 번 : - python (0) | 2023.02.05 |
| [백준] 2292 번 : 벌집 - python (0) | 2023.02.05 |