Reorganized the repository
This commit is contained in:
parent
026a6303be
commit
8596c316cf
|
@ -0,0 +1,25 @@
|
||||||
|
def main():
|
||||||
|
directory_contents = {}
|
||||||
|
with open('input.txt', 'r') as f:
|
||||||
|
input_lines = f.readlines()
|
||||||
|
|
||||||
|
line_index = 0
|
||||||
|
while line_index < len(input_lines):
|
||||||
|
if input_lines[line_index].startswith('$ cd'):
|
||||||
|
if input_lines[line_index][5:] not in ['..', '/']:
|
||||||
|
directory_contents[input_lines[line_index][5:]] = []
|
||||||
|
line_index += 1
|
||||||
|
continue
|
||||||
|
elif input_lines[line_index].startswith('$ ls'):
|
||||||
|
line_index += 1
|
||||||
|
while not input_lines[line_index].startswith('$'):
|
||||||
|
...
|
||||||
|
|
||||||
|
|
||||||
|
def current_dir_size(dir: str) -> int:
|
||||||
|
...
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,99 @@
|
||||||
|
def main():
|
||||||
|
with open('input.txt', 'r') as f:
|
||||||
|
head_moves = f.readlines()
|
||||||
|
head_moves = [move.split() for move in head_moves]
|
||||||
|
|
||||||
|
head_pos, tail_pos = [0,0], [0,0]
|
||||||
|
pos_list = []
|
||||||
|
for move in head_moves:
|
||||||
|
pos_list.append(tuple(tail_pos))
|
||||||
|
if move[0] == 'U':
|
||||||
|
for i in range(int(move[1])):
|
||||||
|
head_pos[1] += 1
|
||||||
|
if validate_pos(head_pos, tail_pos):
|
||||||
|
pos_list.append(tuple(tail_pos))
|
||||||
|
continue
|
||||||
|
if head_pos[0] == tail_pos[0]:
|
||||||
|
tail_pos[1] += 1
|
||||||
|
pos_list.append(tuple(tail_pos))
|
||||||
|
elif head_pos[0] == tail_pos[0] + 1:
|
||||||
|
tail_pos[1] += 1
|
||||||
|
pos_list.append(tuple(tail_pos))
|
||||||
|
tail_pos[0] += 1
|
||||||
|
pos_list.append(tuple(tail_pos))
|
||||||
|
elif head_pos[0] == tail_pos[0] - 1:
|
||||||
|
tail_pos[1] += 1
|
||||||
|
pos_list.append(tuple(tail_pos))
|
||||||
|
tail_pos[0] -= 1
|
||||||
|
pos_list.append(tuple(tail_pos))
|
||||||
|
elif move[0] == 'D':
|
||||||
|
for i in range(int(move[1])):
|
||||||
|
head_pos[1] -= 1
|
||||||
|
if validate_pos(head_pos, tail_pos):
|
||||||
|
pos_list.append(tuple(tail_pos))
|
||||||
|
continue
|
||||||
|
if head_pos[0] == tail_pos[0]:
|
||||||
|
tail_pos[1] -= 1
|
||||||
|
pos_list.append(tuple(tail_pos))
|
||||||
|
elif head_pos[0] == tail_pos[0] + 1:
|
||||||
|
tail_pos[1] -= 1
|
||||||
|
pos_list.append(tuple(tail_pos))
|
||||||
|
tail_pos[0] += 1
|
||||||
|
pos_list.append(tuple(tail_pos))
|
||||||
|
elif head_pos[0] == tail_pos[0] - 1:
|
||||||
|
tail_pos[1] -= 1
|
||||||
|
pos_list.append(tuple(tail_pos))
|
||||||
|
tail_pos[0] -= 1
|
||||||
|
pos_list.append(tuple(tail_pos))
|
||||||
|
elif move[0] == 'R':
|
||||||
|
for i in range(int(move[1])):
|
||||||
|
head_pos[0] += 1
|
||||||
|
if validate_pos(head_pos, tail_pos):
|
||||||
|
pos_list.append(tuple(tail_pos))
|
||||||
|
continue
|
||||||
|
if head_pos[1] == tail_pos[1]:
|
||||||
|
tail_pos[0] += 1
|
||||||
|
pos_list.append(tuple(tail_pos))
|
||||||
|
elif head_pos[1] == tail_pos[1] + 1:
|
||||||
|
tail_pos[0] += 1
|
||||||
|
pos_list.append(tuple(tail_pos))
|
||||||
|
tail_pos[1] += 1
|
||||||
|
pos_list.append(tuple(tail_pos))
|
||||||
|
elif head_pos[1] == tail_pos[1] - 1:
|
||||||
|
tail_pos[0] += 1
|
||||||
|
pos_list.append(tuple(tail_pos))
|
||||||
|
tail_pos[1] -= 1
|
||||||
|
pos_list.append(tuple(tail_pos))
|
||||||
|
elif move[0] == 'L':
|
||||||
|
for i in range(int(move[1])):
|
||||||
|
head_pos[0] -= 1
|
||||||
|
if validate_pos(head_pos, tail_pos):
|
||||||
|
pos_list.append(tuple(tail_pos))
|
||||||
|
continue
|
||||||
|
if head_pos[1] == tail_pos[1]:
|
||||||
|
tail_pos[0] -= 1
|
||||||
|
pos_list.append(tuple(tail_pos))
|
||||||
|
elif head_pos[1] == tail_pos[1] + 1:
|
||||||
|
tail_pos[0] -= 1
|
||||||
|
pos_list.append(tuple(tail_pos))
|
||||||
|
tail_pos[1] += 1
|
||||||
|
pos_list.append(tuple(tail_pos))
|
||||||
|
elif head_pos[1] == tail_pos[1] - 1:
|
||||||
|
tail_pos[0] -= 1
|
||||||
|
pos_list.append(tuple(tail_pos))
|
||||||
|
tail_pos[1] -= 1
|
||||||
|
pos_list.append(tuple(tail_pos))
|
||||||
|
|
||||||
|
pos_set = set(pos_list)
|
||||||
|
pos_list = list(pos_set)
|
||||||
|
print(len(pos_list))
|
||||||
|
|
||||||
|
#print(f"Repeated positions: {pos_count}")
|
||||||
|
|
||||||
|
|
||||||
|
def validate_pos(h: list[int], t: list[int]) -> bool:
|
||||||
|
return -2 < h[0] - t[0] < 2 and -2 < h[1] - t[1] < 2
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
File diff suppressed because it is too large
Load Diff
22
README.md
22
README.md
|
@ -1,15 +1,11 @@
|
||||||
# Advent of Code 2022
|
# Advent of Code
|
||||||
### Solutions for the 2022 AoC challenges
|
## Solutions for the AoC Challenges
|
||||||
### They might not be the best solutions but they work and that's the important part of a coders job :xdd:
|
### They might not be the best solutions but they work and that's the important part of a coders job :xdd:
|
||||||
---
|
|
||||||
## Languages used:
|
|
||||||
#### Python:
|
|
||||||
* Day 1
|
|
||||||
* Day 2
|
|
||||||
* Day 4
|
|
||||||
* Day 5
|
|
||||||
* Day 6
|
|
||||||
* Day 8
|
|
||||||
|
|
||||||
#### C#:
|
---
|
||||||
* Day 3
|
## Languages used by days:
|
||||||
|
### 2022
|
||||||
|
| Language | Days |
|
||||||
|
|----------|------------------|
|
||||||
|
| Python | 1, 2, 4, 5, 6, 8 |
|
||||||
|
| C# | 3 |
|
|
@ -1,29 +0,0 @@
|
||||||
import os
|
|
||||||
from datetime import date
|
|
||||||
|
|
||||||
|
|
||||||
def main(args):
|
|
||||||
currentDay = date.today().day
|
|
||||||
reposDirectory = f"/home/{os.getlogin()}/repos/advent-of-code-2022"
|
|
||||||
dayGroups = [(int(days[4:].split('-')[0]), int(days[4:].split('-')[1])) for days in [directory for directory in os.listdir(reposDirectory) if directory.startswith('days')][::-1]]
|
|
||||||
indexOfDayGroup = -1
|
|
||||||
for dayGroup in dayGroups:
|
|
||||||
if dayGroup[0] < currentDay < dayGroup[1]:
|
|
||||||
indexOfDayGroup = dayGroups.index(dayGroup)
|
|
||||||
break
|
|
||||||
currentDayGroupDir = f"{reposDirectory}/days{dayGroups[indexOfDayGroup][0]}-{dayGroups[indexOfDayGroup][1]}"
|
|
||||||
currentDayDir = f"{currentDayGroupDir}/day{currentDay}"
|
|
||||||
|
|
||||||
if len(args) > 1:
|
|
||||||
if args[1] == "run":
|
|
||||||
os.system(f"python3 {currentDayDir}/day{currentDay}.py")
|
|
||||||
return
|
|
||||||
|
|
||||||
if f"day{currentDay}" not in os.listdir(currentDayGroupDir):
|
|
||||||
os.system(f"mkdir {currentDayDir}")
|
|
||||||
os.system(f"vim {currentDayDir}/day{currentDay}.py")
|
|
||||||
|
|
||||||
|
|
||||||
import sys
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main(sys.argv)
|
|
Loading…
Reference in New Issue