-
백준 1781 - 컵라면 (Python)BOJ PS/Python 2023. 7. 10. 20:49
https://acmicpc.net/problem/1781
1781번: 컵라면
상욱 조교는 동호에게 N개의 문제를 주고서, 각각의 문제를 풀었을 때 컵라면을 몇 개 줄 것인지 제시 하였다. 하지만 동호의 찌를듯한 자신감에 소심한 상욱 조교는 각각의 문제에 대해 데드라
www.acmicpc.net
알고리즘 수업 시간에 배웠던 잘 알려진 그리디 문제. 그때는 unit task scheduling problem이라고 배웠던 것 같다.
그리디 알고리즘임을 알기만 한다면 문제 풀이는 크게 어렵지 않다.from heapq import heappop,heappush import sys input=sys.stdin.readline INF=sys.maxsize N=int(input()) noodles=[] for _ in range(N): a,b=map(int,input().split()) heappush(noodles, (a,-b)) visited=[] while noodles: d,v=heappop(noodles) if not visited: visited.append(-v) min_val=-v min_idx=0 continue if len(visited)<d: visited.append(-v) if -v<min_val: min_val=-v min_idx=len(visited)-1 else: if -v<=min_val: continue else: visited[min_idx]=-v min_val=min(visited) min_idx=visited.index(min_val) print(sum(visited))
'BOJ PS > Python' 카테고리의 다른 글
백준 1949 - 우수 마을 (Python) (0) 2023.07.10 백준 9370 - 미확인 도착지 (Python) (0) 2023.07.10 백준 1256 - 사전 (Python) (0) 2023.07.03 백준 2352 - 반도체 설계 (Python) (0) 2023.07.03 백준 1103 - 게임 (Python) (0) 2023.07.03