문제 링크
1. 내 코드
from collections import deque
import math
def solution(progresses, speeds):
answer = []
completeDays = deque()
for i in range(len(progresses)) :
completeDays.append(math.ceil((100 - progresses[i]) / speeds[i]))
while completeDays :
standard = completeDays.popleft()
cnt = 1
for day in completeDays:
if standard >= day:
cnt += 1
else:
break
for _ in range(cnt-1):
completeDays.popleft()
answer.append(cnt)
return answer
print(solution([93, 30, 55],[1, 30, 5]))
결과
평가
- 테스트케이스 11 안됬었음 : 만약 아래 부분이 float형으로 나왔을 경우 값을 올림으로 처리해야하는데 // 으로 하면 math.ceil이 먹지 않음
(100 - progresses[i]) / speeds[i])
- 여러개의 수학 함수를 이용할 수 있는 math모듈을 import 한다.
- 실수를 올림 할 때는 math.ceil( ) 함수를 사용한다. ceil은 천장을 의미하며 실수의 바로 위 정수를 반환한다.
- 실수를 내림 할 때는 math.floor( ) 함수를 사용한다. floor는 바닥을 의미하며 실수의 바로 아래 정수를 반환한다.
git링크