math.ceil을 사용하지 않고 반올림을 하는 방법
def solution(progresses, speeds):
left_days = []
for i in range(len(progresses)):
left_days.append(-(-(100-progresses[i])//speeds[i]))
print(left_days)
sup = [1]
sup_day = left_days[0]
for day in left_days[1:]:
if sup_day >= day:
sup[-1]+=1
else:
sup_day = day
sup.append(1)
return sup
문제를 풀면서 위와 같은 코드를 만들었다.
left_days.append((100-progresses[i])//speeds[i])
초기 코드는 남은 일수를 계산하는 수식이 위와 같았는데
이럴 경우 진행도 95, 속도 2와 같은 상황에서
5/2 = 2.5를 버림으로 2가 되는 문제가 발생했다.
하지만 100-95에서 -로 변경하여 -5/2로 변경하여
내림을 할 시 -3으로 내려가는 것을 활용
이후 다시 -를 적용하여 3으로 반올림을 한 결과를 만들었다
'이것저것 정리' 카테고리의 다른 글
| 쿠키, 세션, 토큰, 캐시 (0) | 2025.06.22 |
|---|---|
| git/github (0) | 2024.11.11 |