본문 바로가기

알고리즘/백준

[백준] 8980번 : 택배

728x90

8980번: 택배

 

8980번: 택배

입력의 첫 줄은 마을 수 N과 트럭의 용량 C가 빈칸을 사이에 두고 주어진다. N은 2이상 2,000이하 정수이고, C는 1이상 10,000이하 정수이다. 다음 줄에, 보내는 박스 정보의 개수 M이 주어진다. M은 1이

www.acmicpc.net

🤔 문제분석

정렬문제로, 정렬을 도착지점 기준으로 정렬하면 된다. 도착지점을 정렬하는 이유는 도착지점이 이른 곳일수록 짐을 빠르게 내릴 수 있기때문이다.

💻 코드

import sys
input = sys.stdin.readline
N, C = map(int, input().split())
M = int(input())

delivery = []
house = [C for _ in range(N+1)]

for _ in range(M):
    start, end, cost = map(int, input().split())
    delivery.append((start, end, cost))
    
delivery.sort(key=lambda x:x[1])

ans = 0
for start, end, cost in delivery:
    temp = C
    for i in range(start, end):
        temp = min(temp, house[i])
    temp = min(temp, cost)
    for i in range(start, end):
        house[i] -= temp
    ans += temp
    
print(ans)

🎯 피드백 및 개선사항

도착지점을 기준으로 정렬을 하는것이 이 문제의 포인트이다.

728x90

'알고리즘 > 백준' 카테고리의 다른 글

[백준] 13904번 : 과제  (1) 2024.02.10
[백준] 2457번 : 공주님의 정원  (1) 2024.02.10
[백준] 7453번 : 합이 0인 네 정수  (1) 2024.02.10
[백준] 1253번 : 좋다  (1) 2024.02.10
[백준] 2109번 : 순회강연  (1) 2024.02.05