Головоломки для ИТ-собеседований
easy

Головоломки для ИТ-собеседований

Четыре метода, которые помогают с решением.

Американские корпорации задали тренд на головоломки при собеседовании ИТ-специалистов — даёшь нестандартную задачу и наблюдаешь, как кандидат действует в условиях неопределённости. Обычно это нужно в двух ситуациях: при высокой конкуренции на вакансию или когда работа связана с креативом. Сегодня мы разберём четыре метода, которые упрощают решение подобных головоломок.

Памятка

👉 Не все ИТ-компании пользуются головоломками и положительно к ним относятся. Однако если спросят — лучше быть готовым. 

👉 Если интервьюер задаёт сложную головоломку, то, по его мнению, вы её способны решить или должны задать уточняющие вопросы для упрощения. 

👉 Ход мыслей важнее правильного ответа. Поэтому озвучивайте варианты и не бойтесь ошибаться — нормальные интервьюеры всегда подсказывают. 

👉 Не существует универсального решения для всех головоломок — помогает только тренированность и интерес к самостоятельному разбору новых задач.

Декомпозиция

Суть. Вы читаете головоломку и переносите условие в таблицу из трёх блоков: исходные данные, действия и результат. Таблица структурирует информацию и помогает понять, с чего начать рассуждение и какие данные можно игнорировать. 

Когда использовать. В случае длинного или запутанного условия. 

Пример. У фермера двадцать кур, две коровы и один щенок. Каждые три дня в 5:00 фермер доит корову, кормит щенка и забирает три яйца от трёх кур. Посчитайте, сколько яиц снесут все куры за девять дней? 

Перед нами задача с разными переменными и процессами — это значит, что за множеством условий скрыта какая-то деталь или они нужны для отвлечения внимания. Чтобы быстро сориентироваться — составим таблицу: в исходные данные запишем объекты; в действия — выполненные процессы; в результат — ответ, который нужно получить. Если условие разложено по полочкам, то легко найти отправную точку и выделить необходимые данные для расчёта.

Всё красное — лишняя информация. Отправная точка — момент, когда мы рассчитываем, сколько яиц курица несёт за три дня

Исключение

Суть. Нужно сгруппировать однотипные данные, отметить известные переменные и постепенно распутать клубок неизвестных. Правильная табличная группировка превращает подобные головоломки в простые задачи на внимательность. 

Когда использовать. Если нужно упорядочить данные. 

Пример. Встретились три подруги: Ира, Катя и Света. У одной девушки были красные туфли, у другой — чёрные, у третьей — синие. Платья тоже были красного, чёрного и синего цвета. Известно, что только у Иры платье и туфли были одного цвета. Света была в синих туфлях. На Кате не было ничего чёрного. Определите, какого цвета платья и туфли были у каждой из подруг? 

Туфли и платья — это два типа данных, которые мы разделим на две таблицы и сгруппируем. Теперь заполняем таблицы и находим неизвестные переменные: 

  • Света: отмечаем синие туфли; исключаем чёрные и красные туфли, синее платье.  
  • Катя: исключаем чёрные туфли и платье.
  • Катя: отмечаем красные туфли; исключаем красное платье; отмечаем синее платье. 
  • Ира: отмечаем чёрное платье и туфли. 
  • Света: отмечаем красное платье. 

Результат: Ира в чёрном платье и чёрных туфлях; Катя в красных туфлях и синем платье; Света в красном платье и синих туфлях.

Задачи на исключение удобно распутывать с помощью таблиц — они помогают не запоминать громоздкое условие и постепенно обрабатывать данные

Худший случай 

Суть. Если задача предполагает неограниченное количество попыток или шагов — считаем, что нам не повезёт, и делаем расчёты для наихудшего варианта. 

Когда использовать. Если с разными объектами совершают однотипные действия: их взвешивают, считают, перекладывают, переливают и так далее. 

Пример. В ящике 100 разноцветных треугольников: 30 чёрных, 15 синих, 15 красных, 10 зелёных, 10 розовых, 10 оранжевых, 5 фиолетовых и 5 коричневых. Сколько треугольников нужно вытащить, чтобы среди них был один фиолетовый?  

В данном случае худший вариант будет таким: мы вытянем 95 треугольников и среди них не будет ни одного фиолетового. Поэтому если мы вытащим 96 треугольников, то среди них точно будет один фиолетовый.

Если повезёт, то мы вытащим нужный треугольник с первой попытки. Однако если в задаче ничего не указано про количество попыток — ориентируемся на худший вариант

Действуем от противного

Суть. Нужно перевернуть исходные данные и доказать, что они неверны. В результате мы подтвердим своё предположение или найдём противоречие. 

Когда использовать. Если известно суждение и его нужно подтвердить или опровергнуть ограниченным количеством информации.

Пример. Есть круг из 15 смайликов зелёного и красного цвета. Докажите, что хотя бы у одной пары соседних смайликов будет один цвет?

Предполагаем, что описанный сценарий невозможен и у всех соседних смайликов разные цвета — должно получиться семь или восемь пар. Делим пятнадцать на два и получаем семь с половиной — нечётное число, противоречащее нашему утверждению. Значит, хотя бы у одной пары будет одинаковый цвет. 

Проверяем предположение: рисуем через один все смайлы, получаем одну пару с общим цветом и подтверждаем наше доказательство

Что дальше

Прочтите книгу Уильяма Паудстоуна «Найти умного. Как проверить логическое мышление и творческие способности кандидата». Она о том, как проверяют логическое мышление программистов при собеседовании в Microsoft. 

Потренируйтесь на наших задачах из раздела «Как решить».Посетите braingames.ru — это сайт, где тренируется руководитель группы рекомендательных систем лаборатории ИИ Сбера Алексей Васильев. На следующей неделе у нас с ним выйдет интервью, стей тюнед.

Текст и иллюстрации

Александр Бабаскин



Заглавная иллюстрация

Даня Берковский


Корректор

Ира Михеева


Вёрстка

Маша Дронова


Соцсети

Олег Вешкурцев

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Вам может быть интересно
Что такое стек и как он устроен
Что такое стек и как он устроен

И почему так страшен стек-оверфлоу.

medium
Что такое SCRUM
Что такое SCRUM

Модное слово в разработке. Нужно ли оно?

easy
ЭТО RAID
ЭТО RAID

Как устроено избыточное хранение данных.

medium
Сложная задача по простой математике для взрослых
Сложная задача по простой математике для взрослых

Некоторых она точно поставит в тупик

easy
Задача про время на сервере
Задача про время на сервере

Переводим часы правильно

easy
Новая задача про продуктивность
Новая задача про продуктивность

Простая математическая задачка для восстановления экономики.

easy
Как угадать число за 7 попыток: математический трюк
Как угадать число за 7 попыток: математический трюк

Простой математический трюк, который раскрывает мощь алгоритмов

easy
Задача про хакатон и программистов, которые знакомы друг с другом
Задача про хакатон и программистов, которые знакомы друг с другом

В этой задаче запутаются все.

easy
Задача про безумного рекрутера и большой офис
Задача про безумного рекрутера и большой офис

Вот что бывает, когда начинаешь бесконтрольно нанимать людей, — внезапно заканчивается место в офисе.

easy
easy