Day 1
This commit is contained in:
parent
dd054ac2fd
commit
4f3da898a0
7 changed files with 1089 additions and 1 deletions
10
.fleet/run.json
Normal file
10
.fleet/run.json
Normal file
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"configurations": [
|
||||
{
|
||||
"type": "cargo",
|
||||
"name": "Cargo configuration",
|
||||
"cargoArgs": ["run"],
|
||||
},
|
||||
|
||||
]
|
||||
}
|
8
.idea/.gitignore
vendored
Normal file
8
.idea/.gitignore
vendored
Normal file
|
@ -0,0 +1,8 @@
|
|||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
# Editor-based HTTP Client requests
|
||||
/httpRequests/
|
||||
# Datasource local storage ignored files
|
||||
/dataSources/
|
||||
/dataSources.local.xml
|
11
.idea/advent-of-code-2023.iml
Normal file
11
.idea/advent-of-code-2023.iml
Normal file
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="EMPTY_MODULE" version="4">
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/target" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
8
.idea/modules.xml
Normal file
8
.idea/modules.xml
Normal file
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/advent-of-code-2023.iml" filepath="$PROJECT_DIR$/.idea/advent-of-code-2023.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
6
.idea/vcs.xml
Normal file
6
.idea/vcs.xml
Normal file
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
1000
res/01/input
Normal file
1000
res/01/input
Normal file
File diff suppressed because it is too large
Load diff
|
@ -1,9 +1,54 @@
|
|||
use std::fs;
|
||||
use std::collections::HashMap;
|
||||
|
||||
pub fn solve() {
|
||||
let path = "res/01/input.txt";
|
||||
let path = "res/01/input";
|
||||
|
||||
let contents = fs::read_to_string(path).expect("I/O error, wrong path?");
|
||||
|
||||
let result: u32 = contents
|
||||
.lines()
|
||||
.map(|line| {
|
||||
let nums = line.chars().filter(|c| c.is_digit(10)).collect::<Vec::<char>>();
|
||||
nums.first().unwrap().to_digit(10).unwrap() * 10 + nums.last().unwrap().to_digit(10).unwrap()})
|
||||
.sum();
|
||||
|
||||
println!("Result 1: {}", result);
|
||||
|
||||
let mut txt_nums = HashMap::<&str, u32>::new();
|
||||
txt_nums.insert("zero", 0);
|
||||
txt_nums.insert("one", 1);
|
||||
txt_nums.insert("two", 2);
|
||||
txt_nums.insert("three", 3);
|
||||
txt_nums.insert("four", 4);
|
||||
txt_nums.insert("five", 5);
|
||||
txt_nums.insert("six", 6);
|
||||
txt_nums.insert("seven", 7);
|
||||
txt_nums.insert("eight", 8);
|
||||
txt_nums.insert("nine", 9);
|
||||
|
||||
let result: u32 = contents
|
||||
.lines()
|
||||
.map(|line| {
|
||||
let mut nums = Vec::<u32>::new();
|
||||
line.chars().enumerate().for_each(|(i,c)| {
|
||||
if c.is_digit(10) {
|
||||
nums.push(c.to_digit(10).unwrap());
|
||||
return
|
||||
}
|
||||
for (k,v) in txt_nums.clone() {
|
||||
if c == k.chars().next().unwrap() && line.len() - i >= k.len() && (&line[i..i + k.len()]) == k {
|
||||
nums.push(v)
|
||||
}
|
||||
}
|
||||
});
|
||||
nums.first().unwrap() * 10 + nums.last().unwrap()
|
||||
})
|
||||
.sum();
|
||||
|
||||
println!("Result 2: {}", result);
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
Loading…
Reference in a new issue