Add: add second day solutions
This commit is contained in:
parent
34ac3971f0
commit
1cc4e213d7
5 changed files with 74 additions and 0 deletions
33
python/src/2-day/README.md
Normal file
33
python/src/2-day/README.md
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
# День 2: Подарочный магазин
|
||||||
|
|
||||||
|
## Задача
|
||||||
|
|
||||||
|
В базе данных подарочного магазина появились неверные ID продуктов. Нужно найти все неверные ID в заданных диапазонах.
|
||||||
|
|
||||||
|
### Входные данные
|
||||||
|
|
||||||
|
Диапазоны ID, разделенные запятыми. Каждый диапазон: `начало-конец`
|
||||||
|
|
||||||
|
Пример:
|
||||||
|
|
||||||
|
```
|
||||||
|
11-22,95-115,998-1012,1188511880-1188511890,222220-222224,
|
||||||
|
1698522-1698528,446443-446449,38593856-38593862,565653-565659,
|
||||||
|
824824821-824824827,2121212118-2121212124
|
||||||
|
```
|
||||||
|
|
||||||
|
### Часть 1
|
||||||
|
|
||||||
|
Неверный ID - число, состоящее из повторяющейся последовательности цифр **дважды**.
|
||||||
|
|
||||||
|
Примеры: `55` (5 дважды), `6464` (64 дважды), `123123` (123 дважды)
|
||||||
|
|
||||||
|
**Ответ:** сумма всех неверных ID в заданных диапазонах.
|
||||||
|
|
||||||
|
### Часть 2
|
||||||
|
|
||||||
|
Неверный ID - число, состоящее из повторяющейся последовательности цифр **как минимум дважды**.
|
||||||
|
|
||||||
|
Примеры: `12341234` (1234 дважды), `123123123` (123 трижды), `1111111` (1 семь раз)
|
||||||
|
|
||||||
|
**Ответ:** сумма всех неверных ID по новым правилам.
|
||||||
1
python/src/2-day/input.txt
Normal file
1
python/src/2-day/input.txt
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
9191906840-9191941337,7671-13230,2669677096-2669816099,2-12,229599-392092,48403409-48523311,96763-229430,1919163519-1919240770,74928-96389,638049-668065,34781-73835,736781-819688,831765539-831907263,5615884-5749554,14101091-14196519,7134383-7169141,413340-625418,849755289-849920418,7745350-7815119,16717-26267,4396832-4549887,87161544-87241541,4747436629-4747494891,335-549,867623-929630,53-77,1414-3089,940604-1043283,3444659-3500714,3629-7368,79-129,5488908-5597446,97922755-98097602,182-281,8336644992-8336729448,24-47,613-1077
|
||||||
18
python/src/2-day/solution1.py
Normal file
18
python/src/2-day/solution1.py
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
with open("./src/2-day/input.txt", "r") as file:
|
||||||
|
durs = file.readline().split(",")
|
||||||
|
|
||||||
|
correct_cnt = 0
|
||||||
|
|
||||||
|
for dur in durs:
|
||||||
|
first, last = map(int, dur.split("-"))
|
||||||
|
|
||||||
|
for number in range(first, last + 1):
|
||||||
|
number = str(number)
|
||||||
|
|
||||||
|
if len(number) % 2:
|
||||||
|
continue
|
||||||
|
|
||||||
|
if number[: len(number) // 2] * 2 == number:
|
||||||
|
correct_cnt += int(number)
|
||||||
|
|
||||||
|
print(correct_cnt)
|
||||||
21
python/src/2-day/solution2.py
Normal file
21
python/src/2-day/solution2.py
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
with open("./src/2-day/input.txt", "r") as file:
|
||||||
|
durs = file.readline().split(",")
|
||||||
|
|
||||||
|
correct_cnt = 0
|
||||||
|
|
||||||
|
for dur in durs:
|
||||||
|
first, last = map(int, dur.split("-"))
|
||||||
|
|
||||||
|
for number in range(first, last + 1):
|
||||||
|
string_number = str(number)
|
||||||
|
string_number_len = len(string_number)
|
||||||
|
|
||||||
|
for letters_cnt in range(1, string_number_len // 2 + 1):
|
||||||
|
repeat = string_number_len // letters_cnt
|
||||||
|
if (
|
||||||
|
string_number[:letters_cnt] * repeat
|
||||||
|
) == string_number and repeat >= 2:
|
||||||
|
correct_cnt += number
|
||||||
|
break
|
||||||
|
|
||||||
|
print(correct_cnt)
|
||||||
1
python/src/2-day/test_input.txt
Normal file
1
python/src/2-day/test_input.txt
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
11-22,95-115,998-1012,1188511880-1188511890,222220-222224,1698522-1698528,446443-446449,38593856-38593862,565653-565659,824824821-824824827,2121212118-2121212124
|
||||||
Loading…
Add table
Add a link
Reference in a new issue