mirror of
https://github.com/iritmaximus/aoc.git
synced 2026-10-12 19:13:38 +03:00
day1 first
This commit is contained in:
Generated
+7
@@ -0,0 +1,7 @@
|
||||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
version = 4
|
||||
|
||||
[[package]]
|
||||
name = "day1"
|
||||
version = "0.1.0"
|
||||
@@ -0,0 +1,6 @@
|
||||
[package]
|
||||
name = "day1"
|
||||
version = "0.1.0"
|
||||
edition = "2024"
|
||||
|
||||
[dependencies]
|
||||
@@ -0,0 +1,66 @@
|
||||
use std::fs;
|
||||
|
||||
const FILE_PATH: &str = "./src/input.txt";
|
||||
|
||||
fn main() {
|
||||
first();
|
||||
second();
|
||||
}
|
||||
|
||||
fn first() {
|
||||
println!("Hello, world!");
|
||||
|
||||
let raw_contents = fs::read_to_string(FILE_PATH)
|
||||
.expect("Couldn't open the input.txt file");
|
||||
let contents = raw_contents.trim();
|
||||
|
||||
let mut result = 0;
|
||||
let mut starting_value: i32 = 50;
|
||||
for line in contents.lines() {
|
||||
let direction: char = line.chars().nth(0).unwrap();
|
||||
let value: i32 = line.chars().skip(1).collect::<String>().parse().unwrap();
|
||||
|
||||
starting_value += if direction == 'R' { value } else if direction == 'L' { -value } else { 0 };
|
||||
while starting_value > 99 {
|
||||
starting_value -= 100
|
||||
}
|
||||
while starting_value < 0 {
|
||||
starting_value += 100
|
||||
}
|
||||
if starting_value == 0 {
|
||||
result += 1;
|
||||
}
|
||||
println!("Line: {line} ({starting_value}, {result})");
|
||||
|
||||
}
|
||||
println!("Result: {result}");
|
||||
}
|
||||
|
||||
fn second() {
|
||||
println!("Hello, world!");
|
||||
|
||||
let raw_contents = fs::read_to_string(FILE_PATH)
|
||||
.expect("Couldn't open the input.txt file");
|
||||
let contents = raw_contents.trim();
|
||||
|
||||
let mut result = 0;
|
||||
let mut starting_value: i32 = 50;
|
||||
for line in contents.lines() {
|
||||
let direction: char = line.chars().nth(0).unwrap();
|
||||
let value: i32 = line.chars().skip(1).collect::<String>().parse().unwrap();
|
||||
|
||||
starting_value += if direction == 'R' { value } else if direction == 'L' { -value } else { 0 };
|
||||
while starting_value > 99 {
|
||||
starting_value -= 100
|
||||
}
|
||||
while starting_value < 0 {
|
||||
starting_value += 100
|
||||
}
|
||||
if starting_value == 0 {
|
||||
result += 1;
|
||||
}
|
||||
println!("Line: {line} ({starting_value}, {result})");
|
||||
|
||||
}
|
||||
println!("Result: {result}");
|
||||
}
|
||||
Reference in New Issue
Block a user