Добро пожаловать на новую статью по решению алгоритмических задач, в которой я собрал для вас список новых задач из разных источников разной сложности, чтобы каждый смог попробовать в себя в этом увлекательном деле!
Цель статьи заключается в тренировке практик по применению различных алгоритмов, в поддержании навыка "Писать код" в тонусе ну и, само собой, немного поразвлечься!
Что было раньше:
В предыдущей части (нажмите на строку) мы решили:
- Permutation Square Roots (Квадратные корни, перестановки) (Нажмите на строку)
- Roman numerals, Zeroes and Fractions (Римские цифры, нули и дроби) (Нажмите на строку)
- Reversing a Process (Обращение процесса) (Нажмите на строку)
- Say Me Please Operations (Назови мне, пожалуйста, операции) (Нажмите на строку)
- Return the day (Верни день) (Нажмите на строку)
В этой части вас ждут еще более интересные алгоритмические задачи. Давайте приступим!
Решение новых задач:
Пояснение сложности задач у разных платформ:
Codewars
8 kyu - Самая простая задача
7 kyu - ...
6 kyu - ...
5 kyu - ...
4 kyu - ...
3 kyu - ...
2 kyu - ...
1 kyu - Самая сложная задач
Задача 1
Платформа: CodeWars
Название задачи: Exclamation marks series #11: Replace all vowel to exclamation mark in the sentence (Серия "Восклицательный знак" #11: Замените все гласные в предложении на восклицательный знак)
Ссылка на задачу: https://www.codewars.com/kata/57fb09ef2b5314a8a90001ed (Нажмите на строку)
Сложность: 8 (8 / 8) kyu
Уже решили (На момент написания статьи): 9,503 из 34,132
Тэги: Фундаментальные
Оригинальное описание задачи:
Replace all vowel to exclamation mark in the sentence. aeiouAEIOU
is vowel.
Examples
"Hi!" --> "H!!"
"!Hi! Hi!" --> "!H!! H!!"
"aeiou" --> "!!!!!"
"ABCDE" --> "!BCD!"
Пояснение задачи:
Суть задачи заключается в том, чтобы заменить все гласные буквы (aeiouAEIOU) в предложении на восклицательные знаки (!).
Задача 2
Платформа: CodeWars
Название задачи: A Rule of Divisibility by 7 (Правило делимости на 7)
Ссылка на задачу: https://www.codewars.com/kata/55e6f5e58f7817808e00002e (Нажмите на строку)
Сложность: 7 (7 / 8) kyu
Уже решили (На момент написания статьи): 3,049 из 12,830
Тэги: Фундаментальные
Оригинальное описание задачи:
A number m of the form 10x + y is divisible by 7 if and only if x − 2y is divisible by 7. In other words, subtract twice the last digit from the number formed by the remaining digits. Continue to do this until a number known to be divisible by 7 is obtained; you can stop when this number has at most 2 digits because you are supposed to know if a number of at most 2 digits is divisible by 7 or not.
The original number is divisible by 7 if and only if the last number obtained using this procedure is divisible by 7.
Examples:
1 - m = 371 -> 37 − (2×1) -> 37 − 2 = 35
; thus, since 35 is divisible by 7, 371 is divisible by 7.
The number of steps to get the result is 1
.
2 - m = 1603 -> 160 - (2 x 3) -> 154 -> 15 - 8 = 7
and 7 is divisible by 7.
3 - m = 372 -> 37 − (2×2) -> 37 − 4 = 33
; thus, since 33 is not divisible by 7, 372 is not divisible by 7.
4 - m = 477557101->47755708->4775554->477547->47740->4774->469->28
and 28 is divisible by 7, so is 477557101. The number of steps is 7.
Task:
Your task is to return to the function seven(m)
(m integer >= 0) an array (or a pair, depending on the language) of numbers, the first being the last number m
with at most 2 digits obtained by your function (this last m
will be divisible or not by 7), the second one being the number of steps to get the result.
Forth Note:
Return on the stack number-of-steps, last-number-m-with-at-most-2-digits
Examples:
seven(371) should return [35, 1]
seven(1603) should return [7, 2]
seven(477557101) should return [28, 7]
Пояснение задачи:
Задача заключается в том, чтобы проверить делимость числа на 7 с помощью специального алгоритма.
Алгоритм работает следующим образом:
Берем число и отделяем последнюю цифру от остальных цифр.
Умножаем последнюю цифру на 2 и вычитаем результат из оставшихся цифр.
Повторяем этот процесс до тех пор, пока не получим двузначное или однозначное число.
Если итоговое число делится на 7 без остатка, то исходное число тоже делится на 7.
Например, для числа 371:
Отделяем последнюю цифру 1, остальные цифры – 37.
Вычисляем 37 - (2 * 1) = 35.
Число 35 делится на 7, значит, и 371 делится на 7.
Нам нужно реализовать функцию seven(m), которая принимает целое число m и возвращает массив из двух элементов: Первое значение – последнее двузначное или однозначное число, которое получилось после применения алгоритма.
Второе значение – количество шагов, необходимых для получения этого числа.
Примеры:
Для числа 371 функция вернет [35, 1].
Для числа 1603 функция вернет [7, 2].
Задача 3
Платформа: CodeWars
Название задачи: Highest Scoring Word (Слово с самым высоким баллом)
Ссылка на задачу: https://www.codewars.com/kata/57eb8fcdf670e99d9b000272 (Нажмите на строку)
Сложность: 6 (6 / 8) kyu
Уже решили (На момент написания статьи): 36,683 из 102,452
Тэги: Фундаментальные, Строки, Массивы
Оригинальное описание задачи:
Given a string of words, you need to find the highest scoring word.
Each letter of a word scores points according to its position in the alphabet: a = 1, b = 2, c = 3
etc.
For example, the score of abad
is 8
(1 + 2 + 1 + 4).
You need to return the highest scoring word as a string.
If two words score the same, return the word that appears earliest in the original string.
All letters will be lowercase and all inputs will be valid.
Пояснение задачи:
По условию задачи дана строка, состоящая из нескольких слов.
Нужно найти слово с наибольшей суммой баллов.
Баллы каждого слова считаются следующим образом:
Каждая буква имеет свой балл, соответствующий её позиции в алфавите (a=1, b=2, c=3 и так далее).
Например, слово "abad" имеет сумму баллов равную 8 (1+2+1+4).
Если два слова имеют одинаковую сумму баллов, нужно вернуть первое встреченное слово в строке.
Все буквы будут строчными, а входные данные всегда корректны.
Задача 4
Платформа: CodeWars
Название задачи: Closest and Smallest (Ближайшее и наименьшее)
Ссылка на задачу: https://www.codewars.com/kata/5868b2de442e3fb2bb000119 (Нажмите на строку)
Сложность: 5 (5 / 8) kyu
Уже решили (На момент написания статьи): 957 из 3,273
Тэги: Фундаментальные, Сортировка
Оригинальное описание задачи:
Input
- a string
strng
of n positive numbers (n = 0 or n >= 2)
Let us call weight of a number the sum of its digits. For example 99
will have "weight" 18
, 100
will have "weight" 1
.
Two numbers are "close" if the difference of their weights is small.
Task:
For each number in strng
calculate its "weight" and then find two numbers of strng
that have:
- the smallest difference of weights ie that are the closest
- with the smallest weights
- and with the smallest indices (or ranks, numbered from 0) in
strng
Output:
- an array of two arrays, each subarray in the following format:
[number-weight, index in strng of the corresponding number, original corresponding number in
strng]
or a pair of two subarrays (Haskell, Clojure, FSharp) or an array of tuples (Elixir, C++)
or a (char*) in C or a string in some other languages mimicking an array of two subarrays or a string
or a matrix in R (2 rows, 3 columns, no columns names)
The two subarrays are sorted in ascending order by their number weights if these weights are different, by their indexes in the string if they have the same weights.
Examples:
Let us call that function closest
strng = "103 123 4444 99 2000"
the weights are 4, 6, 16, 18, 2 (ie 2, 4, 6, 16, 18)
closest should return [[2, 4, 2000], [4, 0, 103]] (or ([2, 4, 2000], [4, 0, 103])
or [{2, 4, 2000}, {4, 0, 103}] or ... depending on the language)
because 2000 and 103 have for weight 2 and 4, their indexes in strng are 4 and 0.
The smallest difference is 2.
4 (for 103) and 6 (for 123) have a difference of 2 too but they are not
the smallest ones with a difference of 2 between their weights.
....................
strng = "80 71 62 53"
All the weights are 8.
closest should return [[8, 0, 80], [8, 1, 71]]
71 and 62 have also:
- the smallest weights (which is 8 for all)
- the smallest difference of weights (which is 0 for all pairs)
- but not the smallest indices in strng.
....................
strng = "444 2000 445 544"
the weights are 12, 2, 13, 13 (ie 2, 12, 13, 13)
closest should return [[13, 2, 445], [13, 3, 544]] or ([13, 2, 445], [13, 3, 544])
or [{13, 2, 445}, {13, 3, 544}] or ...
444 and 2000 have the smallest weights (12 and 2) but not the smallest difference of weights;
they are not the closest.
Here the smallest difference is 0 and in the result the indexes are in ascending order.
...................
closest("444 2000 445 644 2001 1002") --> [[3, 4, 2001], [3, 5, 1002]] or ([3, 4, 2001],
[3, 5, 1002]]) or [{3, 4, 2001}, {3, 5, 1002}] or ...
Here the smallest difference is 0 and in the result the indexes are in ascending order.
...................
closest("239382 162 254765 182 485944 468751 49780 108 54")
The weights are: 27, 9, 29, 11, 34, 31, 28, 9, 9.
closest should return [[9, 1, 162], [9, 7, 108]] or ([9, 1, 162], [9, 7, 108])
or [{9, 1, 162}, {9, 7, 108}] or ...
108 and 54 have the smallest difference of weights too, they also have
the smallest weights but they don't have the smallest ranks in the original string.
..................
closest("54 239382 162 254765 182 485944 468751 49780 108")
closest should return [[9, 0, 54], [9, 2, 162]] or ([9, 0, 54], [9, 2, 162])
or [{9, 0, 54}, {9, 2, 162}] or ...
Notes :
If n == 0
closest("")
should return []
-
or ([], []) in Haskell, Clojure, FSharp
-
or [{}, {}] in Elixir or '(() ()) in Racket
-
or {{0,0,0}, {0,0,0}} in C++
-
or "[(), ()]" in Go, Nim,
-
or "{{0,0,0}, {0,0,0}}" in C, NULL in R
-
or "" in Perl.
See Example tests for the format of the results in your language.
Пояснение задачи:
Задача состоит в следующем: На входе дана строка, содержащая несколько положительных чисел.
Необходимо для каждого числа вычислить его «вес» — сумму всех его цифр.
Затем нужно найти две пары чисел, которые удовлетворяют следующим условиям:
Разница их весов минимальна.
Их веса наименьшие среди всех возможных пар.
Их индексы в исходной строке минимальны.
Результатом является массив из двух подмассивов, где каждый подмассив содержит три элемента: вес числа, индекс числа в исходной строке и само число.
Подмассивы должны быть отсортированы по возрастанию весов, а при равных весах — по возрастанию индексов.
Пример:
Входная строка: "103 123 4444 99 2000"
Вес каждого числа: 4, 6, 16, 18, 2
Выбираем пару чисел с минимальной разницей весов: 2000 (вес 2) и 103 (вес 4).
Результат: [[2, 4, 2000], [4, 0, 103]]
Задача 5
Платформа: CodeWars
Название задачи: All Balanced Parentheses (Все сбалансированные круглые скобки])
Ссылка на задачу: https://www.codewars.com/kata/5426d7a2c2c7784365000783 (Нажмите на строку)
Сложность: 4 (4 / 8) kyu
Уже решили (На момент написания статьи): 2,702 из 6,480]
Тэги: Алгоритмы]
Оригинальное описание задачи:
Write a function which makes a list of strings representing all of the ways you can balance n
pairs of parentheses
Examples
balanced_parens(0) => [""]
balanced_parens(1) => ["()"]
balanced_parens(2) => ["()()","(())"]
balanced_parens(3) => ["()()()","(())()","()(())","(()())","((()))"]
Пояснение задачи:
Суть задачи заключается в том чтобы написать функцию, которая создает список строк, представляющих все возможные способы сбалансированных скобок для заданного количества пар скобок.
Примеры:
balanced_parens(0) => [""]
balanced_parens(1) => ["()"]
balanced_parens(2) => ["()()","(())"]
balanced_parens(3) => ["()()()","(())()","()(())","(()())","((()))"]
Новое в конфигурации Algo1C:

https://github.com/SalavatovNabiulla/Algo1C
- 0.5 : Добавлена возможность выбирать контекст исполнения кода, например: НаСервере или НаКлиенте
- 0.4 : Исправлена ошибка при выводе содержимого исключения
- 0.3 : Добавлена возможность сохранять и загружать задачи; Внесены небольшие изменения в интерфейс
- 0.2 : Исправлена ошибка при выводе результата (Отдельная благодарность SAShikutkin)
Заключение:
Codewars
8 kyu - Самая простая задача
7 kyu - ...
6 kyu - ...
5 kyu - ...
4 kyu - ...
3 kyu - ...
2 kyu - ...
1 kyu - Самая сложная задач
Платформа: CodeWars
Название задачи: Exclamation marks series #11: Replace all vowel to exclamation mark in the sentence (Серия "Восклицательный знак" #11: Замените все гласные в предложении на восклицательный знак)
Ссылка на задачу: https://www.codewars.com/kata/57fb09ef2b5314a8a90001ed (Нажмите на строку)
Сложность: 8 (8 / 8) kyu
Уже решили (На момент написания статьи): 9,503 из 34,132
Тэги: Фундаментальные
Оригинальное описание задачи:
Replace all vowel to exclamation mark in the sentence.
aeiouAEIOU
is vowel.Examples
"Hi!" --> "H!!" "!Hi! Hi!" --> "!H!! H!!" "aeiou" --> "!!!!!" "ABCDE" --> "!BCD!"
Пояснение задачи:
Суть задачи заключается в том, чтобы заменить все гласные буквы (aeiouAEIOU) в предложении на восклицательные знаки (!).
Платформа: CodeWars
Название задачи: A Rule of Divisibility by 7 (Правило делимости на 7)
Ссылка на задачу: https://www.codewars.com/kata/55e6f5e58f7817808e00002e (Нажмите на строку)
Сложность: 7 (7 / 8) kyu
Уже решили (На момент написания статьи): 3,049 из 12,830
Тэги: Фундаментальные
Оригинальное описание задачи:
A number m of the form 10x + y is divisible by 7 if and only if x − 2y is divisible by 7. In other words, subtract twice the last digit from the number formed by the remaining digits. Continue to do this until a number known to be divisible by 7 is obtained; you can stop when this number has at most 2 digits because you are supposed to know if a number of at most 2 digits is divisible by 7 or not.
The original number is divisible by 7 if and only if the last number obtained using this procedure is divisible by 7.
Examples:
1 -
m = 371 -> 37 − (2×1) -> 37 − 2 = 35
; thus, since 35 is divisible by 7, 371 is divisible by 7.The number of steps to get the result is
1
.2 -
m = 1603 -> 160 - (2 x 3) -> 154 -> 15 - 8 = 7
and 7 is divisible by 7.3 -
m = 372 -> 37 − (2×2) -> 37 − 4 = 33
; thus, since 33 is not divisible by 7, 372 is not divisible by 7.4 -
m = 477557101->47755708->4775554->477547->47740->4774->469->28
and 28 is divisible by 7, so is 477557101. The number of steps is 7.Task:
Your task is to return to the function
seven(m)
(m integer >= 0) an array (or a pair, depending on the language) of numbers, the first being the last numberm
with at most 2 digits obtained by your function (this lastm
will be divisible or not by 7), the second one being the number of steps to get the result.Forth Note:
Return on the stack
number-of-steps, last-number-m-with-at-most-2-digits
Examples:
seven(371) should return [35, 1] seven(1603) should return [7, 2] seven(477557101) should return [28, 7]
Пояснение задачи:
Задача заключается в том, чтобы проверить делимость числа на 7 с помощью специального алгоритма.
Алгоритм работает следующим образом:
Берем число и отделяем последнюю цифру от остальных цифр.
Умножаем последнюю цифру на 2 и вычитаем результат из оставшихся цифр.
Повторяем этот процесс до тех пор, пока не получим двузначное или однозначное число.
Если итоговое число делится на 7 без остатка, то исходное число тоже делится на 7.
Например, для числа 371:
Отделяем последнюю цифру 1, остальные цифры – 37.
Вычисляем 37 - (2 * 1) = 35.
Число 35 делится на 7, значит, и 371 делится на 7.
Нам нужно реализовать функцию seven(m), которая принимает целое число m и возвращает массив из двух элементов: Первое значение – последнее двузначное или однозначное число, которое получилось после применения алгоритма.
Второе значение – количество шагов, необходимых для получения этого числа.
Примеры:
Для числа 371 функция вернет [35, 1].
Для числа 1603 функция вернет [7, 2].
Платформа: CodeWars
Название задачи: Highest Scoring Word (Слово с самым высоким баллом)
Ссылка на задачу: https://www.codewars.com/kata/57eb8fcdf670e99d9b000272 (Нажмите на строку)
Сложность: 6 (6 / 8) kyu
Уже решили (На момент написания статьи): 36,683 из 102,452
Тэги: Фундаментальные, Строки, Массивы
Оригинальное описание задачи:
Given a string of words, you need to find the highest scoring word.
Each letter of a word scores points according to its position in the alphabet:
a = 1, b = 2, c = 3
etc.For example, the score of
abad
is8
(1 + 2 + 1 + 4).You need to return the highest scoring word as a string.
If two words score the same, return the word that appears earliest in the original string.
All letters will be lowercase and all inputs will be valid.
Пояснение задачи:
По условию задачи дана строка, состоящая из нескольких слов.
Нужно найти слово с наибольшей суммой баллов.
Баллы каждого слова считаются следующим образом:
Каждая буква имеет свой балл, соответствующий её позиции в алфавите (a=1, b=2, c=3 и так далее).
Например, слово "abad" имеет сумму баллов равную 8 (1+2+1+4).
Если два слова имеют одинаковую сумму баллов, нужно вернуть первое встреченное слово в строке.
Все буквы будут строчными, а входные данные всегда корректны.
Платформа: CodeWars
Название задачи: Closest and Smallest (Ближайшее и наименьшее)
Ссылка на задачу: https://www.codewars.com/kata/5868b2de442e3fb2bb000119 (Нажмите на строку)
Сложность: 5 (5 / 8) kyu
Уже решили (На момент написания статьи): 957 из 3,273
Тэги: Фундаментальные, Сортировка
Оригинальное описание задачи:
Input
- a string
strng
of n positive numbers (n = 0 or n >= 2)Let us call weight of a number the sum of its digits. For example
99
will have "weight"18
,100
will have "weight"1
.Two numbers are "close" if the difference of their weights is small.
Task:
For each number in
strng
calculate its "weight" and then find two numbers ofstrng
that have:
- the smallest difference of weights ie that are the closest
- with the smallest weights
- and with the smallest indices (or ranks, numbered from 0) in
strng
Output:
- an array of two arrays, each subarray in the following format:
[number-weight, index in strng of the corresponding number, original corresponding number in
strng]
or a pair of two subarrays (Haskell, Clojure, FSharp) or an array of tuples (Elixir, C++)
or a (char*) in C or a string in some other languages mimicking an array of two subarrays or a string
or a matrix in R (2 rows, 3 columns, no columns names)
The two subarrays are sorted in ascending order by their number weights if these weights are different, by their indexes in the string if they have the same weights.
Examples:
Let us call that function
closest
strng = "103 123 4444 99 2000" the weights are 4, 6, 16, 18, 2 (ie 2, 4, 6, 16, 18) closest should return [[2, 4, 2000], [4, 0, 103]] (or ([2, 4, 2000], [4, 0, 103]) or [{2, 4, 2000}, {4, 0, 103}] or ... depending on the language) because 2000 and 103 have for weight 2 and 4, their indexes in strng are 4 and 0. The smallest difference is 2. 4 (for 103) and 6 (for 123) have a difference of 2 too but they are not the smallest ones with a difference of 2 between their weights. .................... strng = "80 71 62 53" All the weights are 8. closest should return [[8, 0, 80], [8, 1, 71]] 71 and 62 have also: - the smallest weights (which is 8 for all) - the smallest difference of weights (which is 0 for all pairs) - but not the smallest indices in strng. .................... strng = "444 2000 445 544" the weights are 12, 2, 13, 13 (ie 2, 12, 13, 13) closest should return [[13, 2, 445], [13, 3, 544]] or ([13, 2, 445], [13, 3, 544]) or [{13, 2, 445}, {13, 3, 544}] or ... 444 and 2000 have the smallest weights (12 and 2) but not the smallest difference of weights; they are not the closest. Here the smallest difference is 0 and in the result the indexes are in ascending order. ................... closest("444 2000 445 644 2001 1002") --> [[3, 4, 2001], [3, 5, 1002]] or ([3, 4, 2001], [3, 5, 1002]]) or [{3, 4, 2001}, {3, 5, 1002}] or ... Here the smallest difference is 0 and in the result the indexes are in ascending order. ................... closest("239382 162 254765 182 485944 468751 49780 108 54") The weights are: 27, 9, 29, 11, 34, 31, 28, 9, 9. closest should return [[9, 1, 162], [9, 7, 108]] or ([9, 1, 162], [9, 7, 108]) or [{9, 1, 162}, {9, 7, 108}] or ... 108 and 54 have the smallest difference of weights too, they also have the smallest weights but they don't have the smallest ranks in the original string. .................. closest("54 239382 162 254765 182 485944 468751 49780 108") closest should return [[9, 0, 54], [9, 2, 162]] or ([9, 0, 54], [9, 2, 162]) or [{9, 0, 54}, {9, 2, 162}] or ...
Notes :
If
n == 0
closest("")
should return []
or ([], []) in Haskell, Clojure, FSharp
or [{}, {}] in Elixir or '(() ()) in Racket
or {{0,0,0}, {0,0,0}} in C++
or "[(), ()]" in Go, Nim,
or "{{0,0,0}, {0,0,0}}" in C, NULL in R
or "" in Perl.
See Example tests for the format of the results in your language.
Пояснение задачи:
Задача состоит в следующем: На входе дана строка, содержащая несколько положительных чисел.
Необходимо для каждого числа вычислить его «вес» — сумму всех его цифр.
Затем нужно найти две пары чисел, которые удовлетворяют следующим условиям:
Разница их весов минимальна.
Их веса наименьшие среди всех возможных пар.
Их индексы в исходной строке минимальны.
Результатом является массив из двух подмассивов, где каждый подмассив содержит три элемента: вес числа, индекс числа в исходной строке и само число.
Подмассивы должны быть отсортированы по возрастанию весов, а при равных весах — по возрастанию индексов.
Пример:
Входная строка: "103 123 4444 99 2000"
Вес каждого числа: 4, 6, 16, 18, 2
Выбираем пару чисел с минимальной разницей весов: 2000 (вес 2) и 103 (вес 4).
Результат: [[2, 4, 2000], [4, 0, 103]]
Платформа: CodeWars
Название задачи: All Balanced Parentheses (Все сбалансированные круглые скобки])
Ссылка на задачу: https://www.codewars.com/kata/5426d7a2c2c7784365000783 (Нажмите на строку)
Сложность: 4 (4 / 8) kyu
Уже решили (На момент написания статьи): 2,702 из 6,480]
Тэги: Алгоритмы]
Оригинальное описание задачи:
Write a function which makes a list of strings representing all of the ways you can balance
n
pairs of parenthesesExamples
balanced_parens(0) => [""] balanced_parens(1) => ["()"] balanced_parens(2) => ["()()","(())"] balanced_parens(3) => ["()()()","(())()","()(())","(()())","((()))"]
Пояснение задачи:
Суть задачи заключается в том чтобы написать функцию, которая создает список строк, представляющих все возможные способы сбалансированных скобок для заданного количества пар скобок.
Примеры:
balanced_parens(0) => [""]
balanced_parens(1) => ["()"]
balanced_parens(2) => ["()()","(())"]
balanced_parens(3) => ["()()()","(())()","()(())","(()())","((()))"]
https://github.com/SalavatovNabiulla/Algo1C
- 0.5 : Добавлена возможность выбирать контекст исполнения кода, например: НаСервере или НаКлиенте
- 0.4 : Исправлена ошибка при выводе содержимого исключения
- 0.3 : Добавлена возможность сохранять и загружать задачи; Внесены небольшие изменения в интерфейс
- 0.2 : Исправлена ошибка при выводе результата (Отдельная благодарность SAShikutkin)
Ну что ж, пока на этом всё, надеюсь, статья была увлекательной для вас, благодарю за внимание.
Подключайтесь к решению алгоритмических задач вместе со мной, делитесь вашим мнением и решениями в комментариях, сохраняя при этом позитивный настрой!
Увидимся в новой статье!