Menu
CoddyTech

Apa yang Harus Dibeli

Termasuk bagian Dasar-Dasar dalam perjalanan R di Coddy. Pelajaran 78 dari 78.

challenge icon

Tantangan

Mudah

Buat fungsi bernama what_to_buy yang menerima dua argumen: budget (nilai numerik) dan prices (vektor bernama yang berisi harga barang). Fungsi ini harus mengembalikan vektor karakter yang berisi nama semua barang dengan harga kurang dari atau sama dengan budget.

Jika tidak ada barang yang terjangkau, kembalikan vektor karakter kosong menggunakan character(0).

Kamu akan menerima input berikut:

  1. Jumlah budget (angka)
  2. Daftar nama barang yang dipisahkan dengan koma (misalnya, apple,banana,steak,bread)
  3. Daftar harga yang sesuai dan dipisahkan dengan koma (misalnya, 2,1,15,3)

Parsing input untuk membuat vektor harga bernama, panggil fungsimu, lalu cetak hasilnya. Gunakan print() untuk menampilkan vektor karakter yang dikembalikan.

Contohnya, jika inputnya adalah:

5
apple,banana,steak,bread
2,1,15,3

Outputnya adalah:

[1] "apple"  "banana" "bread"

Jika inputnya adalah:

10
laptop,phone,tablet
999,599,399

Outputnya adalah:

character(0)

Petunjuk:

  • Gunakan strsplit(input, ",")[[1]] untuk memisahkan string yang dipisahkan dengan koma menjadi vektor
  • Gunakan as.numeric() untuk mengonversi string harga menjadi angka
  • Gunakan names(prices) <- item_names untuk membuat vektor bernama
  • Gunakan pengindeksan logis dengan names() untuk mengambil nama barang yang terjangkau

Coba sendiri

# Baca input
con <- file("stdin", "r")
budget <- as.numeric(suppressWarnings(readLines(con, n = 1)))
item_names_input <- suppressWarnings(readLines(con, n = 1))
prices_input <- suppressWarnings(readLines(con, n = 1))
close(con)

# Uraikan input
item_names <- strsplit(item_names_input, ",")[[1]]
price_values <- as.numeric(strsplit(prices_input, ",")[[1]])

# Buat vektor harga dengan nama
prices <- price_values
names(prices) <- item_names

# TODO: Tulis fungsi what_to_buy milikmu di bawah ini
# Fungsi tersebut harus menerima budget dan prices sebagai argumen
# dan mengembalikan vektor karakter berisi nama barang yang harganya terjangkau


# Panggil fungsi tersebut dan cetak hasilnya
result <- what_to_buy(budget, prices)
print(result)

Semua pelajaran di Dasar-Dasar

Latihan sendiri: Compiler R online