파이썬-내림
🔨 절차형
💡
학습 전략: 연습 (Practice)
즉시 실전에 적용해 보는 것이 핵심
개요
Python에서 내림 연산을 수행하는 방법 중 math.ceil() 함수를 사용하지 않는 창의적인 접근법을 소개합니다.
코드 예제
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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
핵심 포인트
정수 나눗셈을 활용한 올림 연산
1
-(-(100-progresses[i])//speeds[i])
이 표현식의 동작 원리:
100-progresses[i]: 남은 작업량 계산-(...//speeds[i]): 음수로 만들어 정수 나눗셈 수행- 외부의
-: 다시 양수로 변환
이 방법은 math.ceil() 없이도 올림 효과를 낼 수 있습니다.
실용 예시
작업 진행률 계산
1
2
3
4
5
progresses = [93, 30, 55]
speeds = [1, 30, 5]
# 결과: [7, 3, 9]
# 각 작업이 완료되기까지 남은 일수
정수 나눗셈 (//)의 특징
- 소수점 이하를 버림
- 음수에서는 내림 방향으로 작동
- 이중 음수 변환으로 올림 효과 구현
활용 분야
- 프로그래머스 알고리즘 문제
- 작업 진행률 계산
- 일정 관리 시스템