d18
This commit is contained in:
parent
1affc44c28
commit
5d522dc0f6
7
day18/Cargo.lock
generated
Normal file
7
day18/Cargo.lock
generated
Normal file
@ -0,0 +1,7 @@
|
||||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
version = 3
|
||||
|
||||
[[package]]
|
||||
name = "day17"
|
||||
version = "0.1.0"
|
6
day18/Cargo.toml
Normal file
6
day18/Cargo.toml
Normal file
@ -0,0 +1,6 @@
|
||||
[package]
|
||||
name = "day17"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
[dependencies]
|
2085
day18/input.txt
Normal file
2085
day18/input.txt
Normal file
File diff suppressed because it is too large
Load Diff
34
day18/src/main.rs
Normal file
34
day18/src/main.rs
Normal file
@ -0,0 +1,34 @@
|
||||
use std::io;
|
||||
use std::env;
|
||||
use std::fs::File;
|
||||
use std::io::BufReader;
|
||||
use std::io::BufRead;
|
||||
use std::collections::HashSet;
|
||||
|
||||
|
||||
fn main() -> io::Result<()> {
|
||||
let input_fname = env::args().nth(1).expect("need input file");
|
||||
let lines = BufReader::new(File::open(input_fname)?).lines();
|
||||
let mut cubes: HashSet<(i8, i8, i8)> = HashSet::new();
|
||||
|
||||
for line in lines.flatten() {
|
||||
let mut split = line.split(',');
|
||||
let x = split.next().unwrap().to_string().parse::<i8>().unwrap();
|
||||
let y = split.next().unwrap().to_string().parse::<i8>().unwrap();
|
||||
let z = split.next().unwrap().to_string().parse::<i8>().unwrap();
|
||||
cubes.insert((x, y, z));
|
||||
}
|
||||
|
||||
let mut all_neighbors = 0;
|
||||
for (x, y, z) in &cubes {
|
||||
let neighbors = HashSet::from([
|
||||
(*x + 1, *y, *z), (*x - 1, *y, *z),
|
||||
(*x, *y + 1, *z), (*x, *y - 1, *z),
|
||||
(*x, *y, *z + 1), (*x, *y, *z - 1)
|
||||
]);
|
||||
all_neighbors += cubes.intersection(&neighbors).count();
|
||||
}
|
||||
println!("{}", cubes.len() * 6 - all_neighbors);
|
||||
Ok(())
|
||||
}
|
||||
|
13
day18/test.txt
Normal file
13
day18/test.txt
Normal file
@ -0,0 +1,13 @@
|
||||
2,2,2
|
||||
1,2,2
|
||||
3,2,2
|
||||
2,1,2
|
||||
2,3,2
|
||||
2,2,1
|
||||
2,2,3
|
||||
2,2,4
|
||||
2,2,6
|
||||
1,2,5
|
||||
3,2,5
|
||||
2,1,5
|
||||
2,3,5
|
Loading…
Reference in New Issue
Block a user