Напиши на языке kotlin: В меню ресторана M блюд. В течение дня ресторан обслужил N посетителей. При этом
посетители заказывали только по три блюда. Определить наиболее и наименее
популярные блюда.
val menu = HashMap<String, Int>()
Затем, проходим по каждому посетителю и, используя функцию readLine(), вычитываем у него названия трех блюд. Добавим каждое блюдо в HashMap:
repeat(N) {
val dish1 = readLine()
val dish2 = readLine()
val dish3 = readLine()
menu[dish1] = menu.getOrDefault(dish1, 0) + 1
menu[dish2] = menu.getOrDefault(dish2, 0) + 1
menu[dish3] = menu.getOrDefault(dish3, 0) + 1
}
Затем определим наиболее и наименее популярные блюда. Создадим переменные `maxCount` и `minCount`, которые будут хранить максимальное и минимальное количество заказов, и инициализируем их первым значением из HashMap:
var maxCount = 0
var minCount = Int.MAX_VALUE
for (count in menu.values) {
if (count > maxCount) {
maxCount = count
}
if (count < minCount) {
minCount = count
}
}
Для определения наиболее и наименее популярных блюд можно использовать еще одну HashMap, в которой ключом будет количество заказов, а значением - список названий блюд с таким количеством заказов. Пройдемся по каждому элементу в HashMap `menu` и заполним вторую HashMap:
val dishesByCount = HashMap<Int, MutableList<String>>()
for ((dish, count) in menu) {
if (dishesByCount.containsKey(count)) {
dishesByCount[count]?.add(dish)
} else {
dishesByCount[count] = mutableListOf(dish)
}
}
Теперь у нас есть HashMap, в которой список блюд сортирован по количеству заказов в возрастающем порядке. Определим наиболее и наименее популярные блюда:
val mostPopularDishes = dishesByCount[maxCount]
val leastPopularDishes = dishesByCount[minCount]
В результате выполнения кода в `mostPopularDishes` будут храниться названия самых популярных блюд, а в `leastPopularDishes` - названия самых непопулярных блюд. Выведем результаты на экран:
println("Наиболее популярные блюда:")
for (dish in mostPopularDishes) {
println(dish)
}
println("Наименее популярные блюда:")
for (dish in leastPopularDishes) {
println(dish)
}
Вот полный код программы на языке Kotlin:
fun main() {
val menu = HashMap<String, Int>()
val N = readLine()?.toInt() ?: 0
repeat(N) {
val dish1 = readLine()
val dish2 = readLine()
val dish3 = readLine()
menu[dish1] = menu.getOrDefault(dish1, 0) + 1
menu[dish2] = menu.getOrDefault(dish2, 0) + 1
menu[dish3] = menu.getOrDefault(dish3, 0) + 1
}
var maxCount = 0
var minCount = Int.MAX_VALUE
for (count in menu.values) {
if (count > maxCount) {
maxCount = count
}
if (count < minCount) {
minCount = count
}
}
val dishesByCount = HashMap<Int, MutableList<String>>()
for ((dish, count) in menu) {
if (dishesByCount.containsKey(count)) {
dishesByCount[count]?.add(dish)
} else {
dishesByCount[count] = mutableListOf(dish)
}
}
val mostPopularDishes = dishesByCount[maxCount]
val leastPopularDishes = dishesByCount[minCount]
println("Наиболее популярные блюда:")
for (dish in mostPopularDishes) {
println(dish)
}
println("Наименее популярные блюда:")
for (dish in leastPopularDishes) {
println(dish)
}
}
Эта программа сначала считывает количество посетителей ресторана `N`. Затем в цикле считываются названия трех блюд, которые заказал каждый посетитель, и добавляются в HashMap `menu`. Затем находятся наиболее и наименее популярные блюда, используя значения из `menu`. Наконец, наиболее и наименее популярные блюда выводятся на экран.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет