forked from adventofcode/logan_2022
Added AI generated output because I can
This commit is contained in:
parent
5513d56c4d
commit
43958d4529
1 changed files with 54 additions and 0 deletions
54
day3/day3ai.lua
Normal file
54
day3/day3ai.lua
Normal file
|
@ -0,0 +1,54 @@
|
|||
for i = 1, 1000 do
|
||||
-- Open the file for reading
|
||||
local file = assert(io.open("strings.txt", "r"))
|
||||
|
||||
-- Initialize a variable to store the sum of scores
|
||||
local score = 0
|
||||
|
||||
-- Read each line from the file
|
||||
for line in file:lines() do
|
||||
-- Split the line in half
|
||||
local first_half = line:sub(1, #line / 2)
|
||||
local second_half = line:sub(#line / 2 + 1)
|
||||
|
||||
-- Create a table to store the characters in each half
|
||||
local first_half_chars = {}
|
||||
local second_half_chars = {}
|
||||
|
||||
-- Iterate over each character in each half and store it in the table
|
||||
for i = 1, #first_half do
|
||||
first_half_chars[first_half:sub(i, i)] = true
|
||||
end
|
||||
for i = 1, #second_half do
|
||||
second_half_chars[second_half:sub(i, i)] = true
|
||||
end
|
||||
|
||||
-- Create a table to store the characters that have already been counted
|
||||
local counted_chars = {}
|
||||
|
||||
-- Iterate over each character in the first half again
|
||||
-- and check if it exists in the second half
|
||||
for i = 1, #first_half do
|
||||
local char = first_half:sub(i, i)
|
||||
if second_half_chars[char] and not counted_chars[char] then
|
||||
-- If it does and it hasn't been counted yet,
|
||||
-- assign it a score and add it to the sum of scores
|
||||
local score_value = 0
|
||||
if char:lower() == char then
|
||||
-- If the character is lowercase, its score is its ASCII value - 96
|
||||
score_value = string.byte(char) - 96
|
||||
else
|
||||
-- If the character is uppercase, its score is its ASCII value - 64 + 26
|
||||
score_value = string.byte(char) - 64 + 26
|
||||
end
|
||||
score = score + score_value
|
||||
|
||||
-- Add the character to the counted_chars table so it won't be counted again
|
||||
counted_chars[char] = true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Print the final sum of scores
|
||||
print(score)
|
||||
end
|
Loading…
Reference in a new issue