티스토리 뷰
반응형
https://www.acmicpc.net/problem/1202
1202번: 보석 도둑
첫째 줄에 N과 K가 주어진다. (1 ≤ N, K ≤ 300,000) 다음 N개 줄에는 각 보석의 정보 Mi와 Vi가 주어진다. (0 ≤ Mi, Vi ≤ 1,000,000) 다음 K개 줄에는 가방에 담을 수 있는 최대 무게 Ci가 주어진다. (1 ≤ Ci
www.acmicpc.net
⊙ 문제
⊙ 입력
⊙ 출력
⊙ 예제 입출력
⊙ 알고리즘 분류
- 자료 구조
- 그리디 알고리즘
- 정렬
- 우선순위 큐
⊙ 문제 접근 과정
1️⃣ 보석 리스트 gem에 (무게, 가치)를 담아준다.
2️⃣ bag 값을 담아주고 정렬해준다.
3️⃣ 임시 배열인 temp를 만들어 허용 가능한 보석을 계속 넣어주고 그중 값어치 나가는 보석을 pop
4️⃣ pop한 값을 result 변수에 더해주고 마지막으로 result 출력
⊙ 문제 풀이
import sys
import heapq
N, K = map(int, sys.stdin.readline().split())
gem = []
bag = []
for _ in range(N):
heapq.heappush(gem, list(map(int, sys.stdin.readline().split())))
for _ in range(K):
bag.append(int(input()))
bag.sort()
result = 0
temp = []
for b in bag:
while gem and b >= gem[0][0]:
x,y = heapq.heappop(gem)
heapq.heappush(temp,-y)
if temp:
result -= heapq.heappop(temp)
print(result)
⊙ 결과
⊙ 마무리
NONE
좋아요는 로그인하지 않아도 누를 수 있습니다!
728x90
반응형
'프로그래머스 > PYTHON [파이썬]' 카테고리의 다른 글
[프로그래머스] 코딩테스트 연습 : 기능개발 - PYTHON[파이썬] (0) | 2021.09.27 |
---|---|
[프로그래머스] 코딩테스트 연습 : 프린터 - PYTHON[파이썬] (0) | 2021.09.27 |
[프로그래머스] 코딩테스트 연습 : 타겟 넘버 - PYTHON[파이썬] (0) | 2021.09.25 |
[프로그래머스] 코딩테스트 연습 : 입실 퇴실 - PYTHON[파이썬] (0) | 2021.09.22 |
[백준(BOJ)] 14676번 : 영우는 사기꾼? - PYTHON[파이썬] (0) | 2021.09.19 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 자바
- 정렬
- 알고리즘
- 우종정
- C++
- CPP
- 쉽게배우는
- 운영체제
- 자바스크립트
- py
- java
- 백준
- 구현
- 풀이
- 연습문제
- 프로그래머스
- 해답
- 파이썬
- BFS
- JS
- 정리
- 정답
- Python
- 그리디
- Web
- 쉽게배우는자바프로그래밍
- 쉽게 배우는 자바 프로그래밍
- OS
- 답
- 문자열
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
글 보관함