🛒 HackerRank: Electronics Shop (Optimal Budget Purchasing)

20:00

1. Problem Statement

Seorang pembeli ingin membeli 1 unit keyboard dan 1 unit USB drive dengan budget tertentu $b$. Diberikan daftar harga keyboard dan daftar harga USB drive, cari total biaya tertinggi yang dapat dibelanjakan tanpa melebihi budget $b$.

Jika tidak ada kombinasi 1 keyboard dan 1 USB drive yang muat dalam budget, kembalikan -1.

⏱️ Alokasi Waktu Live Coding (20 Menit):

  • 5 Menit Pertama: Memahami constraints ($N, M \le 1000$), menentukan pendekatan Two-Pointers vs Nested Loop.
  • 15 Menit Koding: Implementasi fungsi getMoneySpent & validasi edge cases.

2. Function Description

Lengkapi fungsi getMoneySpent pada editor:

function getMoneySpent(keyboards, drives, b)

Parameter:

  • int keyboards[n]: array integer berisi harga masing-masing model keyboard.
  • int drives[m]: array integer berisi harga masing-masing model USB drive.
  • int b: integer budget maksimal pembeli.

Return:

  • int: total pengeluaran maksimal $(\le b)$, atau -1 jika tidak memungkinkan membeli kedua barang.

3. Contoh & Penjelasan

Contoh 1:

  • b = 10, keyboards = [3, 1], drives = [5, 2, 8]
  • Kombinasi: $3+5=8$, $3+2=5$, $3+8=11$ (lewat), $1+5=6$, $1+2=3$, $1+8=9$.
  • Termahal $\le 10$ adalah 9 ($1 + 8$).

Contoh 2:

  • b = 5, keyboards = [4], drives = [5]
  • Termurah $4 + 5 = 9 > 5$. Tidak ada kombinasi yang muat.
  • Return -1.
solution.js
Loading...
Local Test Console