Вызов с разрешения моего конкурса университетского кода
Вот уже несколько лет число учеников в моей школе неуклонно растет. Сначала количество учеников было увеличено за счет классной комнаты, но затем было необходимо преобразовать некоторые места для некоторых групп, чтобы проводить там занятия, такие как стенды в спортзале или, на этот последний курс, до комнаты для метлы.
В прошлом году академические власти получили бюджет на строительство нового здания и начали работы. Наконец они закончили, и новое здание уже можно использовать, чтобы мы могли двигаться (старое здание будет восстановлено и будет использовано для другой функции), но оно застало нас на полпути. Директор хочет знать, возможно ли переезд без разделения или присоединения к группам, или что некоторым студентам приходится менять группы.
Вызов
Учитывая количество учащихся в текущих группах и новых классных комнатах (вместимость), выведите истинное значение, если можно назначить разные классы с достаточной вместимостью для каждой из текущих групп, или значение Фальси в противном случае.
Тестовые случаи
Input: groups of students => [10, 20, 30], classrooms capacity => [31, 12, 20]
Output: True
Input: groups of students => [10, 20, 30], classrooms capacity => [100, 200]
Output: False
Input: groups of students => [20, 10, 30], classrooms capacity => [20, 20, 50, 40]
Output: True
Input: groups => [30, 10, 30, 5, 100, 99], classrooms => [40, 20, 50, 40, 99, 99]
Output: False
Input: groups => [], classrooms => [10, 10, 10]
Output: True
Input: groups => [10, 10, 10], classrooms => []
Output: False
Input: groups => [], classrooms => []
Output: True
Input: groups => [10, 1], classrooms => [100]
Output: False
Input: groups => [10], classrooms => [100, 100]
Output: True
Input: groups => [1,2,3], classrooms => [1,1,2,3]
Output: True
Заметки
- Вы можете принять вход в любом разумном формате
- Вы можете вывести любое значение Truthy / Falsey (
1/0
,True/False
и т. Д.) - Код-гольф
источник
g=[1,2,3], c=[1,1,2,3]
0
ли действительным значение для групп или классных комнат?Ответы:
Брахилог , 4 байта
Всегда приятно видеть вызов и знать, что брахилог победит всех. Принимает текущие классы в качестве входных данных и новые классные комнаты в качестве выходных данных; Он выведет true, если найдет способ соответствовать студентам, иначе false
объяснение
Код состоит из 3 частей, порядок которых не имеет значения
Попробуйте онлайн!
источник
Pyth, 11 байт
Вводит в виде списка списков, сначала размеры классов, а затем размеры групп. Попробуйте онлайн здесь или проверьте все тестовые примеры сразу здесь .
источник
Желе , 9 байт
Принимает классные комнаты в качестве первого аргумента и группы в качестве второго аргумента.
Попробуйте онлайн!
комментарии
NB: это
Ṡ‘ḌẠ¬
слишком долго. Но я подозреваю, что в любом случае это неправильный подход.источник
Japt , 9 байт
Попробуйте или запустите все тестовые случаи на TIO
Попробуйте или запустите все тестовые случаи на TIO
источник
2 - n
In Japt встроен однобайтовый код? Какие варианты использования он должен оправдать, что он является 1-байтовым встроенным?Í
является ярлыком дляn2<space>
и был создан для использования со строками, преобразовывая их из чисел от base-2 до base-10 (довольно распространенная необходимость). Однакоn
метод, когда применяется к числу, вычитает это число из аргумента метода (по умолчанию =0
). Поэтому здесь, хотя вычитания из числа0
будет достаточно для сортировки массива в обратном порядке, использование ярлыка экономит мне лишний байтñn<space>
. Я мог бы также использовать его при сортировке,V
но он не сохранил бы никаких байтов, так как мне все еще нужен был бы пробел, а не)
, чтобы закрытьí
метод.Python 2 , 49 байт
Выводится по коду выхода, сбой при ложном вводе.
Попробуйте онлайн!
источник
MATL , 10 байт
Попробуйте онлайн! Или проверьте все тестовые случаи .
объяснение
Рассмотрим входы
[20, 10, 30]
, в[20, 20, 50, 40]
качестве примера. Стек отображается снизу вверх.источник
Haskell , 40 байт
Попробуйте онлайн!
источник
05AB1E ,
14128 байтPort of @Sok 's Pyth answer , так что не забудьте также поддержать его!
Принимает входные данные в виде списка списков, с классным списком в качестве первого элемента и групповым списком в качестве второго элемента.
Попробуйте онлайн или проверьте все контрольные примеры .
Объяснение:
Старый 12-байтовый ответ:
Сначала берет список классов, а затем список групп.
Попробуйте онлайн или проверьте все контрольные примеры .
Объяснение:
источник
C # (интерактивный компилятор Visual C #) ,
7774 байтаПопробуйте онлайн!
Код комментария:
источник
Haskell, 66 байт
Попробуйте онлайн!
источник
Инструменты Bash + GNU, 68 байт
69 байт
TIO
принимает студенческие комнаты в качестве первого и второго аргумента в качестве строковых чисел, разделенных символом новой строки, возвращает состояние выхода 1 для true или 0 для false
источник
Perl 5
-pal
,6762 байта@NahuelFouilleul сэкономил 5 байтов с перестановкой и grep
Попробуйте онлайн!
67-байтовая версия
Принимает разделенный пробелами список размеров класса в первой строке и разделенный пробелами список размеров комнаты в следующей.
источник
Common Lisp, 74 байта
(defun c(s r)(or(not(sort s'>))(and(sort r'>)(<=(pop s)(pop r))(c s r))))
Номера уменьшенная
Попробуй это
Обратите внимание, что sort постоянно изменяет список, а pop повторно связывает переменную со следующим элементом.
По сути, это просто рекурсивно проверяет, что самая большая группа студентов может поместиться в самой большой комнате. Есть 3 базовых варианта:
источник
Python 2 ,
716764 байтаПопробуйте онлайн!
источник
zip(...)
чтобы сохранить 5 байтов.Сетчатка 0.8.2 , 50 байт
Попробуйте онлайн! Ссылка включает тестовый набор. Принимает два списка групп и комнат (набор тестов использует в
;
качестве разделителя списка). Объяснение:Преобразовать в одинарный.
Обратная сортировка каждого списка в отдельности.
Добавьте запятую в каждый список.
Убедитесь, что каждое из чисел в первом списке может быть сопоставлено с соответствующим номером во втором списке. Каждый раз
\3
содержит ранее согласованные комнаты, и\2
поэтому следующая группа должна уместиться в следующую комнату. В(?>\3?)
ручках случае с первой комнатой , когда нет предыдущих номеров пока.источник
Древесный уголь , 28 байт
Попробуйте онлайн! Ссылка на подробную версию кода. Принимает список списков комнат и групп и выходные данные,
-
если комнаты могут вместить группы. Объяснение:Повторите, пока группа может быть назначена на комнату.
Удалить самую большую комнату и группу из их списков.
Убедитесь, что не осталось нераспределенных групп.
источник
JavaScript, 56 байт
Попытайся
источник
7
и9
в классах8
и10
.Perl 6 , 34 байта
Попробуйте онлайн!
Принимает входные данные в виде списка из двух списков, групп и классных комнат, и возвращает None Junction, который может быть увеличен до true / false.
Объяснение:
источник
Рубин , 57 байт
Попробуйте онлайн!
Берут
c
для занятий,r
для комнат. Проверяет все перестановки комнат вместо использования сортировки, потому что обратная сортировка стоит слишком много байтов. Тем не менее выглядит довольно долго, хотя ...источник
C # (интерактивный компилятор Visual C #) ,
1059391828179777674 байтаТеперь соответствует счету Даны!
Выдает ошибку, если ложь, ничего, если правда.
-12 байт благодаря @Destrogio!
Попробуйте онлайн!
объяснение
источник
Java (OpenJDK 8) , 183 байта
Попробуйте онлайн!
С небольшим полезным советом от Кевина Круйссена и просто еще одним взглядом на мой код, я могу уменьшить свой счет на целых 9%, просто заменив три английских слова!
Java (OpenJDK 8) , 166 байт
Попробуйте онлайн!
источник
import java.util.*;
в свой счетчик байтов. Однако вы можете играть в гольф его 144 байт в Java 8, или 140 в Java 10 путем заменыboolean
сvar
.true
/false
в вашем коде,1>0
/0>1
более короткие альтернативы . :)1/0
касается вашей 166-байтовой версии: хотя состояние вопроса вы можете вернуть, и я думаю, что в этом случае это нормально, учтите, что в Java, в отличие от Python, JavaScript, C и т. Д.1/0
Обычно не рассматриваются как допустимые выходные данные true / falsey . И в своем первом комментарии я упомянул 144-байтовую версию . :) Хотя теперь он также недействителен, потому что он не работает в последнем тестовом примере, как упомянуто @Shaggy .PowerShell , 80 байт
Попробуйте онлайн!
Менее гольф тестовый скрипт:
источник
R 65 байт
Попробуйте онлайн!
источник