Menu
Coddy logo textTech

Qué comprar

Parte de la sección Fundamentos del Journey de R de Coddy — lección 78 de 78.

challenge icon

Desafío

Fácil

Crea una función llamada what_to_buy que reciba dos argumentos: budget (un valor numérico) y prices (un vector con nombres de los precios de los artículos). La función debe devolver un vector de caracteres que contenga los nombres de todos los artículos con precios menores o iguales al presupuesto.

Si no hay artículos asequibles, devuelve un vector de caracteres vacío usando character(0).

Recibirás las siguientes entradas:

  1. El monto del presupuesto (un número)
  2. Una lista de nombres de artículos separados por comas (por ejemplo, apple,banana,steak,bread)
  3. Una lista de precios correspondientes separados por comas (por ejemplo, 2,1,15,3)

Analiza las entradas para crear un vector de precios con nombres, llama a tu función e imprime el resultado. Usa print() para mostrar el vector de caracteres devuelto.

Por ejemplo, si la entrada es:

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

La salida debería ser:

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

Si la entrada es:

10
laptop,phone,tablet
999,599,399

La salida debería ser:

character(0)

Consejos:

  • Usa strsplit(input, ",")[[1]] para dividir cadenas separadas por comas en vectores
  • Usa as.numeric() para convertir las cadenas de precios en números
  • Usa names(prices) <- item_names para crear un vector con nombres
  • Usa indexación lógica con names() para extraer los nombres de los artículos asequibles

Pruébalo tú mismo

# Leer entrada
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)

# Analizar las entradas
item_names <- strsplit(item_names_input, ",")[[1]]
price_values <- as.numeric(strsplit(prices_input, ",")[[1]])

# Crear un vector de precios con nombres
prices <- price_values
names(prices) <- item_names

# TODO: Escribe tu función what_to_buy a continuación
# La función debe tomar budget y prices como argumentos
# y devolver un vector de caracteres con los nombres de los artículos asequibles


# Llamar a la función e imprimir el resultado
result <- what_to_buy(budget, prices)
print(result)

Todas las lecciones de Fundamentos