https://www.acmicpc.net/problem/2869
2869번: 달팽이는 올라가고 싶다
첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)
www.acmicpc.net


[풀이]
import sys
a,b,v = map(int, sys.stdin.readline().split())
day = 0
cnt = 0
while day < v:
cnt +=1
day +=a
if day >= v:
break
day -=b
print(cnt)
처음에는 이렇게 풀었는데,
입력의 숫자가 커질수록 시간초과가 발생했다.
반복문 없이 풀어야 시간초과 문제를 피할 수 있어서 고민하다가 결국 구글의 도움을 받았음...ㅠㅠ
import sys
import math
a,b,v = map(int, sys.stdin.readline().split())
day = (v-b)/(a-b)
print(math.ceil(day)) # 소수점 발생시 올림함수 써서 day+1 해줌.
(v-b) / (a-b)로 식을 짜야지 풀리는 문제였다.
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준/Python] 11050번 이항 계수 1 (1) | 2024.01.10 |
---|---|
[백준/Python] 1715번 카드 정렬하기 (0) | 2023.09.20 |
[백준/Python] 1159번 농구 경기 (0) | 2023.09.01 |
[백준/Python] 1181번 단어 정렬 (0) | 2023.08.21 |
[백준/Python] 10951번 A+B - 4 | 입력 끝날 때 까지 출력 (EOF) (0) | 2023.07.19 |