Здесь показаны различия между двумя версиями данной страницы.
|
cg_onbording [2021/05/06 23:22] super_admin создано |
cg_onbording [2021/05/06 23:22] (текущий) super_admin |
||
|---|---|---|---|
| Строка 37: | Строка 37: | ||
| - | |||
| - | ===== THE DESCENT (Снижение) ===== | ||
| - | [[https://www.codingame.com/training/easy/the-descent]] | ||
| - | |||
| - | {{:the_descent_.png?nolink&400|}} | ||
| - | |||
| - | **ЧТО Я БУДУ ИЗУЧАТЬ?** | ||
| - | |||
| - | Циклы | ||
| - | |||
| - | Решение этой головоломки поможет вам понять концепцию циклов и способы получения максимального значения из списка целых чисел. | ||
| - | |||
| - | **Задача** | ||
| - | |||
| - | Простая проблема - опробовать платформу CodinGame: ваша программа должна найти самую высокую гору из списка гор. | ||
| - | |||
| - | |||
| - | **Цель** | ||
| - | |||
| - | Уничтожьте горы до того, как ваш корабль столкнется с одним из них. Для этого стреляйте в самую высокую гору на своем пути. | ||
| - | |||
| - | <code Python> | ||
| - | import sys | ||
| - | import math | ||
| - | |||
| - | # "Бесконечный" цикл, который заканчивается извне, когда пройдены все тесты. | ||
| - | # В каждом шаге цикла while передается набор из 8 значений (высоты 8 вершин). | ||
| - | # Необходимо найти номер самой высокой вершины в каждом шаге цикла while. | ||
| - | while True: | ||
| - | |||
| - | for i in range(8): | ||
| - | mountain_h = int(input()) # на каждом из 8 шагов цикла, считывается высота одной из 8 вершин | ||
| - | |||
| - | # To debug: print("Debug messages...", file=sys.stderr) | ||
| - | |||
| - | # Для того, чтобы разрушить гору, следует написать индекс (номер) самой высокой вершины. | ||
| - | # Замените "4" на имя переменной, которая хранит номер самой высокой вершины. | ||
| - | print("4") | ||
| - | | ||
| - | | ||
| - | </code> | ||
| - | |||
| - | |||
| - | ====== TEMPERATURES (температуры) ====== | ||
| - | |||
| - | * [[https://www.codingame.com/training/easy/temperatures]] | ||
| - | |||
| - | **ЧТО Я БУДУ ИЗУЧАТЬ?** | ||
| - | |||
| - | Условные операторы, циклы, массивы. | ||
| - | |||
| - | **Условие** | ||
| - | |||
| - | Ваша программа должна анализировать записи температур, чтобы найти наиболее близкие к нулю. | ||
| - | |||
| - | {{:temperaturs.png?600|}} | ||
| - | |||
| - | **Инструкция** | ||
| - | |||
| - | Напишите программу, которая печатает температуру, ближайшую к 0 среди вводимых данных. Если два числа одинаково близки к нулю, положительное целое число должно считаться ближайшим к нулю (например, если температуры равны -5 и 5, то отобразите 5). | ||
| - | |||
| - | **Ввод данных** | ||
| - | |||
| - | Строка 1: N , количество измерений температуры для анализа | ||
| - | |||
| - | Строка 2: значения измерений температуры, представленные в виде целых чисел в диапазоне от -273 до 5526 | ||
| - | |||
| - | **Вывод** | ||
| - | |||
| - | Выведите 0 (ноль), если температура не указана. В противном случае отобразите температуру, ближайшую к 0. | ||
| - | |||
| - | **Ограничения** | ||
| - | |||
| - | 0 ≤ N <10000 | ||
| - | |||
| - | **Пример** | ||
| - | |||
| - | <code> | ||
| - | Ввод Вывод | ||
| - | | ||
| - | 5 1 | ||
| - | 1 -2 -8 4 5 | ||
| - | |||
| - | </code> | ||
| - | |||
| - | <code Python> | ||
| - | |||
| - | import sys | ||
| - | import math | ||
| - | |||
| - | |||
| - | n = int(input()) # количество измерений температуры | ||
| - | # функция split() преобразует строку значений, разделенных пробелами, в список (массив) | ||
| - | # пример: | ||
| - | # >>> a = "1 -2 -8 4 5" | ||
| - | # >>> a.split() | ||
| - | # >>> ['1', '-2', '-8', '4', '5'] | ||
| - | |||
| - | # | ||
| - | result = 0 # целевая переменная | ||
| - | |||
| - | for i in input().split(): | ||
| - | # функция int(i) преобразует значение температуры, представленное в текстовом виде, к целочисленному значению | ||
| - | t = int(i) | ||
| - | # ........ вычисления ............. | ||
| - | |||
| - | # To debug: print("Debug messages...", file=sys.stderr) | ||
| - | |||
| - | print(result) # вывод результата | ||
| - | |||
| - | </code> | ||
| - | |||
| - | ====== POWER OF THOR - EPISODE 1 ====== | ||
| - | |||
| - | |||
| - | * [[https://www.codingame.com/training/easy/power-of-thor-episode-1]] | ||
| - | |||
| - | **ЧТО Я БУДУ ИЗУЧАТЬ?** | ||
| - | |||
| - | Условные операторы | ||
| - | |||
| - | Простое решение использует 8 условий. Есть способ упростить его и использовать только 4 условия. | ||
| - | |||
| - | **Условие** | ||
| - | |||
| - | Ваша программа должна позволять Thor достигать координаты источника энергии на 2D-поле. | ||
| - | |||
| - | {{:thor.png?nolink&400|}} | ||
| - | |||
| - | **Правила** | ||
| - | |||
| - | Тор движется по карте, которая в ширину 40 единиц, а в высоту 18 единиц. Обратите внимание, что координаты (X и Y) начинаются в левом верхнем углу! Это означает, что самая верхняя левая ячейка имеет координаты «X = 0, Y = 0», а самая нижняя правая ячейка имеет координаты «X = 39, Y = 17». | ||
| - | |||
| - | При перемещении Тора по поверхности, его координаты меняются. Цель Тора, достичь точки с координатами источника энергии. | ||
| - | |||
| - | <code Python> | ||
| - | |||
| - | import sys | ||
| - | import math | ||
| - | |||
| - | # --- | ||
| - | # Hint: You can use the debug stream to print initialTX and initialTY, if Thor seems not follow your orders. | ||
| - | |||
| - | # light_x: X позиция энергетического источника | ||
| - | # light_y: Y позиция энергетического источника | ||
| - | # initial_tx: Thor's starting X position (точка начала движения Тора на оси x) | ||
| - | # initial_ty: Thor's starting Y position (точка начала движения Тора на оси y) | ||
| - | |||
| - | light_x, light_y, initial_tx, initial_ty = [int(i) for i in input().split()] | ||
| - | |||
| - | # игровой цикл (заканчивается автоматически, когда Тор достигнет цели, или когда у него закончится энергия) | ||
| - | while True: | ||
| - | remaining_turns = int(input()) # Уровень энергии, которая остается еще у Тора. | ||
| - | |||
| - | |||
| - | # To debug: print("Debug messages...", file=sys.stderr) | ||
| - | |||
| - | |||
| - | # Для перемещения Тора, следует вывести одно из направлений: N NE E SE S SW W or NW | ||
| - | print("SE") | ||
| - | | ||
| - | </code> | ||
| - | |||
| - | ====== BRACKETS, EXTREME EDITION (правильная скобочная последовательность) ====== | ||
| - | |||
| - | [[https://www.codingame.com/training/easy/brackets-extreme-edition]] | ||
| - | |||
| - | Стек, цикл... | ||
| - | |||
| - | **Цель** | ||
| - | |||
| - | Правильная скобочная последовательность. Это означает, что все скобки (), квадратные скобки [] и фигурные скобки {}должны быть правильно спарены и вложены. | ||
| - | |||
| - | |||
| - | Выражение не содержит пробельных символов. | ||
| - | |||
| - | [[https://yadi.sk/i/iZGayhgkXha83]] | ||
| - | |||
| - | ====== PAPER LABYRINTH (бумажный лабиринт) ====== | ||
| - | |||
| - | [[https://www.codingame.com/training/medium/paper-labyrinth]] | ||
| - | |||
| - | Graphs, BFS, Pathfinding, Strings, Compression | ||