Здесь показаны различия между двумя версиями данной страницы.
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 |