https://www.acmicpc.net/problem/3216
코드
import sys
input = sys.stdin.readline
n = int(input())
answer = 0
buffer = 0
for _ in range(n):
d, v = map(int, input().split())
buffer += v # 이번 조각을 다운하는데 걸리는 시간
if buffer > 0:
answer += buffer # 지연 시간 추가
buffer = 0
buffer -= d # 다운로드에 필요한 시간에서 재생된 시간 빼기
print(answer)
`buffer`는 다운로드된 노래와 재생된 노래의 시간 차를 말한다. 다운로드될 때는 +, 재생될 때는 -한다.
`buffer`가 양수라는건 다운로드하는데 필요한 시간이 재생 시간보다 크다는 말이다. 이럴 때에는 곡 재생 시작 시간을 지연시켜야 한다.
if download_time > 0:
answer += download_time # 지연 시간 추가
download_time = 0
'문제풀이 > Greedy' 카테고리의 다른 글
[Python/파이썬] 백준 12782번 비트 우정지수 (0) | 2025.04.25 |
---|---|
[Python/파이썬] 백준 11000번 강의실 배정 (0) | 2025.04.24 |
[Python/파이썬] 백준 2790번 F7 (0) | 2025.04.14 |
[Python/파이썬] 백준 30404번 오리와 박수치는 춘배 (0) | 2025.04.04 |
[Python/파이썬] 백준 28228번 Parking Party (0) | 2025.03.30 |