https://www.acmicpc.net/problem/2869
[정답]
import sys
A,B,V=map(int,sys.stdin.readline().split())
day=0
day=(V-B)/(A-B)
if day==int(day):
print(int(day))
else:
print(int(day)+1)
[오답 → 시간 초과]
import sys
A,B,V=map(int,sys.stdin.readline().split())
position,date=0,0
while True:
date+=1
position+=A
if position>=V:
break
position-=B
print(date)
제한시간이 0.15초이다..
sys.stdin.readline()을 사용했는데도 시간 초과가 되었다.
구글링을 해보면 이렇게 시간이 짧을 경우 부등호가 들어가면 안 된다고 한다.
day=(V-B)/(A-B)
case 1) A=2/ B=1/ V=5 → day=4 → 4일
case 2) A=3/ B=1/ V=8 → day=3.5 → 4일
day가 소수점이 나오는 경우가 있기 때문에 이를 처리해주어야 한다.
if day==int(day):
print(int(day))
else:
print(int(day)+1)
day가 case1처럼 자연수일 때, int(day)를 출력해준다. (그냥 day로 하면 float형태로 나오니 꼭 int형으로 바꾸어준다.)
day가 case2처럼 정수일 때, int(day)+1을 해서 출력해준다.
'알고리즘 공부 > 백준 > Python3' 카테고리의 다른 글
[백준 파이썬] #4153: 직각삼각형 (0) | 2020.11.18 |
---|---|
[백준 파이썬] #2941: 크로아티아 알파벳 (0) | 2020.11.17 |
[백준 파이썬] #2751: 수 정렬하기 2 (0) | 2020.11.17 |
[백준 파이썬] #10989: 수 정렬하기 3 (0) | 2020.11.17 |
[백준 파이썬] #1978: 소수 찾기 (0) | 2020.11.16 |