Menu
Coddy logo textTech

Что купить

Часть раздела Основы путешествия по R на Coddy — урок 78 из 78.

challenge icon

Задание

Легко

Создайте функцию с именем what_to_buy, которая принимает два аргумента: budget (числовое значение) и prices (именованный вектор цен на товары). Функция должна возвращать символьный вектор, содержащий названия всех товаров, цены которых меньше или равны бюджету.

Если ни один товар не доступен по цене, верните пустой символьный вектор, используя character(0).

Вы получите следующие входные данные:

  1. Сумма бюджета (число)
  2. Список названий товаров через запятую (например, apple,banana,steak,bread)
  3. Список соответствующих цен через запятую (например, 2,1,15,3)

Обработайте входные данные, чтобы создать именованный вектор цен, вызовите свою функцию и выведите результат. Используйте print() для отображения возвращаемого символьного вектора.

Например, если входные данные следующие:

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

Выходные данные должны быть:

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

Если входные данные следующие:

10
laptop,phone,tablet
999,599,399

Выходные данные должны быть:

character(0)

Подсказки:

  • Используйте strsplit(input, ",")[[1]], чтобы разделить строки, разделенные запятыми, на векторы
  • Используйте as.numeric() для преобразования строк с ценами в числа
  • Используйте names(prices) <- item_names для создания именованного вектора
  • Используйте логическую индексацию с names() для извлечения названий доступных по цене товаров

Попробуйте сами

# Чтение входных данных
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)

# Разбор входных данных
item_names <- strsplit(item_names_input, ",")[[1]]
price_values <- as.numeric(strsplit(prices_input, ",")[[1]])

# Создание именованного вектора цен
prices <- price_values
names(prices) <- item_names

# TODO: Напишите вашу функцию what_to_buy ниже
# Функция должна принимать budget и prices в качестве аргументов
# и возвращать символьный вектор названий доступных товаров


# Вызов функции и вывод результата
result <- what_to_buy(budget, prices)
print(result)

Все уроки раздела Основы