Spec-Zone.ru › Kotlin 1.6

Задачи Advent of Code на Kotlin

Advent of Code 2021 стартует! В JetBrains мы гордимся тем, что являемся одним из основных спонсоров Advent of Code в этом году. Чтобы подготовить вас к AoC 2021, мы подготовили вводное видео и статью в блоге.
Приготовьтесь к Advent of Code на Kotlin! Получайте удовольствие, узнавайте новое и выигрывайте призы!

Advent of Code — ежегодное декабрьское мероприятие, где тематические задачи публикуются ежедневно с 1 по 25 декабря. С разрешения Эрика Уэстла, создателя Advent of Code, мы покажем, как решать эти задачи, используя идиоматичный Kotlin.

Все решения задач Advent of Code 2020 вы можете найти в нашем репозитории на GitHub.

День 1: Исправление отчёта

Изучите обработку входных данных, итерацию по списку, различные способы создания карты и использование функции let для упрощения кода.

  • Прочитайте описание задачи на Advent of Code

  • Посмотрите решение Светланы Исаковой в блоге Kotlin или посмотрите видео:

День 2: Философия паролей

Изучите функции работы со строками, регулярные выражения, операции над коллекциями и то, как функция let может быть полезна для преобразования ваших выражений.

  • Прочитайте описание задачи на Advent of Code

  • Посмотрите решение Светланы Исаковой в блоге Kotlin или посмотрите видео:

День 3: Траектория санки

Сравните императивный и более функциональный стили кода, работайте с парами и функцией reduce(), редактируйте код в режиме выбора столбцов и исправьте переполнение целых чисел.

  • Прочитайте описание задачи на Advent of Code

  • Посмотрите решение Михаила Дворкина на GitHub или посмотрите видео:

День 4: Обработка паспортов

Используйте выражение when и изучите различные способы валидации ввода: вспомогательные функции, работа с диапазонами, проверка принадлежности к множеству и сопоставление с определенным регулярным выражением.

  • Прочитайте описание задачи на Advent of Code

  • Посмотрите решение Себастьяна Айгнера в блоге Kotlin или посмотрите видео:

День 5: Бинарное размещение

Используйте функции стандартной библиотеки Kotlin (replace(), toInt(), find()) для работы с двоичным представлением чисел, изучите мощные локальные функции и узнайте, как использовать функцию max() в Kotlin 1.5.

  • Прочитайте описание задачи на Advent of Code

  • Посмотрите решение Светланы Исаковой в блоге Kotlin или посмотрите видео:

День 6: Таможенные сборы

Узнайте, как группировать и подсчитывать символы в строках и коллекциях с помощью функций стандартной библиотеки: map(), reduce(), sumOf(), intersect(), и union().

  • Прочитайте описание задачи на Advent of Code

  • Посмотрите решение Антона Архипова в блоге Kotlin или посмотрите видео:

День 7: Удобные сумки

Узнайте, как использовать регулярные выражения, метод Java compute() для HashMap из Kotlin для динамического расчета значения в карте, использовать функцию forEachLine() для чтения файлов и сравнить два типа алгоритмов поиска: поиск в глубину и поиск в ширину.

  • Прочитайте описание задачи на Advent of Code

  • Посмотрите решение Паши Финкельштейна в блоге Kotlin или посмотрите видео:

День 8: Остановка портативного устройства

Примените закрытые классы и лямбды для представления инструкций, примените наборы Kotlin для обнаружения циклов в выполнении программы, используйте последовательности и функцию-строитель sequence { } для создания ленивой коллекции, и попробуйте экспериментальную функцию measureTimedValue() для проверки метрик производительности.

  • Прочитайте описание задачи на Advent of Code

  • Посмотрите решение Себастьяна Айгнера в блоге Kotlin или посмотрите видео:

День 9: Ошибка кодирования

Изучите различные способы обработки списков в Kotlin, используя функции any(), firstOrNull(), firstNotNullOfOrNull(), windowed(), takeIf(), и scan(), которые являются примером идиоматического стиля Kotlin.

  • Прочитайте описание задачи на Advent of Code

  • Посмотрите решение Светланы Исаковой в блоге Kotlin или посмотрите видео:

Что дальше?

  • Выполните больше задач с Kotlin Koans

  • Создавайте рабочие приложения с бесплатным треком Kotlin Basics

Последнее изменение: 07 апреля 2022
Книги по Kotlin Изучение Kotlin с плагином EduTools

© 2010–2022 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/advent-of-code.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API