각 업무의 limit마다 누적 시간 합과 limit을 비교해주면서 최솟값을 가져가면 된다.
limit을 초과하면 즉시종료
import sys
input = sys.stdin.readline
N = int(input())
works = [list(map(int, input().split())) for _ in range(N)]
works = sorted(works,key = lambda x: x[1])
total_time = 0
min_rest = float('inf')
for time, limit in works:
total_time += time
min_rest = min(min_rest, limit-total_time)
if limit < total_time:
print(-1)
exit()
print(min_rest)
'practivceAlgorithm > 백준' 카테고리의 다른 글
[백준][Python] 2204 도비의 난독증 테스트 (0) | 2021.08.22 |
---|---|
[백준][Python] 13699 점화식 (0) | 2021.08.20 |
[백준][Python] 12101 1,2,3더하기 2 (0) | 2021.08.19 |
[백준][Python] 2018 수들의 합 (0) | 2021.08.19 |
[백준][Python] 16971 배열B의 합 (0) | 2021.08.18 |