J1Yun
ZU-TECHLOG
J1Yun
전체 방문자
였늘
μ–΄μ œ
  • πŸ“‘ Category (135)
    • Algorithm (61)
      • πŸ“š Concept (6)
      • πŸ“˜ Baekjoon Judge (53)
      • πŸ“— Programmers (2)
    • Computer Science (42)
      • πŸ”’ Operating System (14)
      • πŸ“‘ Network (15)
      • πŸ’Ύ Database (8)
      • 🧩 Design Pattern (4)
      • πŸ”‘ Security (1)
    • Activities (12)
      • 🦁 λ©‹μŸμ΄μ‚¬μžμ²˜λŸΌ 9κΈ° (6)
      • πŸ’» SWλ§ˆμ—μŠ€νŠΈλ‘œ 13κΈ° (6)
    • Infra (1)
      • ☁️ AWS (1)
    • Languages (1)
      • πŸ’™ Python (1)
    • Backend (7)
      • πŸ”΅ Django (4)
      • 🟒 Node.js (3)
    • Ect. (8)
      • πŸ’¬ Talk (0)
      • πŸ—‚οΈ 개발직ꡰ μ·¨μ—… μ€€λΉ„μžλ£Œ (8)

λΈ”λ‘œκ·Έ 메뉴

  • ν™ˆ
  • νƒœκ·Έ
  • λ°©λͺ…둝

곡지사항

인기 κΈ€

졜근 λŒ“κΈ€

졜근 κΈ€

ν‹°μŠ€ν† λ¦¬

250x250
hELLO Β· Designed By μ •μƒμš°.
J1Yun

ZU-TECHLOG

[BOJ] λ°±μ€€ 1202번 보석 도둑 - 파이썬(Python)
Algorithm/πŸ“˜ Baekjoon Judge

[BOJ] λ°±μ€€ 1202번 보석 도둑 - 파이썬(Python)

728x90

문제

세계적인 도둑 μƒλ•μ΄λŠ” 보석점을 ν„ΈκΈ°λ‘œ κ²°μ‹¬ν–ˆλ‹€.

상덕이가 ν„Έ λ³΄μ„μ μ—λŠ” 보석이 총 N개 μžˆλ‹€. 각 보석은 무게 Mi와 가격 Viλ₯Ό κ°€μ§€κ³  μžˆλ‹€. μƒλ•μ΄λŠ” 가방을 K개 κ°€μ§€κ³  있고, 각 가방에 담을 수 μžˆλŠ” μ΅œλŒ€ λ¬΄κ²ŒλŠ” Ci이닀. κ°€λ°©μ—λŠ” μ΅œλŒ€ ν•œ 개의 λ³΄μ„λ§Œ 넣을 수 μžˆλ‹€.

상덕이가 ν›”μΉ  수 μžˆλŠ” λ³΄μ„μ˜ μ΅œλŒ€ 가격을 κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.

μž…λ ₯

첫째 쀄에 Nκ³Ό Kκ°€ μ£Όμ–΄μ§„λ‹€. (1 ≤ N, K ≤ 300,000)

λ‹€μŒ N개 μ€„μ—λŠ” 각 λ³΄μ„μ˜ 정보 Mi와 Viκ°€ μ£Όμ–΄μ§„λ‹€. (0 ≤ Mi, Vi ≤ 1,000,000)

λ‹€μŒ K개 μ€„μ—λŠ” 가방에 담을 수 μžˆλŠ” μ΅œλŒ€ 무게 Ciκ°€ μ£Όμ–΄μ§„λ‹€. (1 ≤ Ci ≤ 100,000,000)

λͺ¨λ“  μˆ«μžλŠ” μ–‘μ˜ μ •μˆ˜μ΄λ‹€.

좜λ ₯

첫째 쀄에 상덕이가 ν›”μΉ  수 μžˆλŠ” 보석 κ°€κ²©μ˜ ν•©μ˜ μ΅œλŒ“κ°’μ„ 좜λ ₯ν•œλ‹€.

 

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

 

πŸ’‘ 풀이 및 μ½”λ“œ

import heapq
import sys
input = sys.stdin.readline

n, k = map(int, input().split())
arr = []
bag = []

for i in range(n):
    heapq.heappush(arr, tuple(map(int, input().split())))
for i in range(k):
    bag.append(int(input()))
bag.sort()

result = 0
temp = []
for b in bag:
    while arr and b >= arr[0][0]:
        heapq.heappush(temp, -heapq.heappop(arr)[1])
    if temp:
        result -= heapq.heappop(temp)
    elif not arr:
        break
print(result)

μ²˜μŒμ ‘ν•΄λ³΄λŠ” λ°°λ‚­ λ¬Έμ œμ˜€λ‹€. 아이디어λ₯Ό λ– μ˜¬λ¦¬λŠ”λ°μ— 어렀움을 κ²ͺμ–΄ 볡슡이 ν•„μš”ν•  것 κ°™λ‹€.

풀이과정을 μ„€λͺ…ν•˜μžλ©΄, 

μ˜€λ¦„μ°¨μˆœ μ •λ ¬λœ λ°°λ‚­λ§ˆλ‹€ λ°˜λ³΅λ¬Έμ„ 돌며 넣을 수 μžˆλŠ” λ³΄μ„μ˜ 가격을 νž™ 큐에 λ„£κ³  이쀑 κ°€μž₯ κ°’λΉ„μ‹Ό 보석을 μ±„νƒν•˜λŠ” 방식이닀. μ΄λ•Œ, 배낭이 μˆ˜μš©κ°€λŠ₯ν•œ 보석을 νž™ 큐에 넣을 λ•ŒλŠ” μ΅œμ†Œνž™, νž™ 큐에 λ“€μ–΄μžˆλŠ” 보석 쀑 큰 값을 선택할 λ•ŒλŠ” μ΅œλŒ€νž™μ„ μ‚¬μš©ν•œλ‹€. 

728x90

'Algorithm > πŸ“˜ Baekjoon Judge' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[BOJ] λ°±μ€€ 7562번 λ‚˜μ΄νŠΈμ˜ 이동 - 파이썬(Python)  (0) 2021.12.29
[BOJ] λ°±μ€€ 9465번 μŠ€ν‹°μ»€ - 파이썬(Python)  (0) 2021.11.24
[BOJ] λ°±μ€€ 1012번 μœ κΈ°λ† λ°°μΆ” - 파이썬(Python)  (0) 2021.10.07
[BOJ] λ°±μ€€ 14501번 퇴사 - 파이썬(Python)  (0) 2021.10.06
[BOJ] λ°±μ€€ 11052번 μΉ΄λ“œ κ΅¬λ§€ν•˜κΈ° - 파이썬(Python)  (0) 2021.10.06
    'Algorithm/πŸ“˜ Baekjoon Judge' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ 글이닀
    • [BOJ] λ°±μ€€ 7562번 λ‚˜μ΄νŠΈμ˜ 이동 - 파이썬(Python)
    • [BOJ] λ°±μ€€ 9465번 μŠ€ν‹°μ»€ - 파이썬(Python)
    • [BOJ] λ°±μ€€ 1012번 μœ κΈ°λ† λ°°μΆ” - 파이썬(Python)
    • [BOJ] λ°±μ€€ 14501번 퇴사 - 파이썬(Python)
    J1Yun
    J1Yun
    개발 κ΄€λ ¨ 기술 및 곡뢀 λ‚΄μš© 기둝μž₯

    ν‹°μŠ€ν† λ¦¬νˆ΄λ°”