day 11
This commit is contained in:
parent
b21a95f539
commit
1054ed64d5
8
Cargo.lock
generated
8
Cargo.lock
generated
|
@ -30,6 +30,14 @@ version = "0.1.0"
|
|||
name = "day_10-2"
|
||||
version = "0.1.0"
|
||||
|
||||
[[package]]
|
||||
name = "day_11-1"
|
||||
version = "0.1.0"
|
||||
|
||||
[[package]]
|
||||
name = "day_11-2"
|
||||
version = "0.1.0"
|
||||
|
||||
[[package]]
|
||||
name = "day_2-1"
|
||||
version = "0.1.0"
|
||||
|
|
140
day_11/input.txt
Normal file
140
day_11/input.txt
Normal file
|
@ -0,0 +1,140 @@
|
|||
........................#...............................................#................................#................................#.
|
||||
....#..............#......................#............#....................................................................#...............
|
||||
................................#.............................................................#.............................................
|
||||
.........#.....................................#...................#........................................................................
|
||||
....................................................#.......................#..............................#................................
|
||||
..#................................................................................................#................#......................#
|
||||
.........................................................#.........................#.....#..................................................
|
||||
..................................#.............................#...............................................#.............#.............
|
||||
.......#.....#...........................#..............................................................#.............................#.....
|
||||
......................#...............................#................................................................#....................
|
||||
............................#.................#........................#.....................................#..............................
|
||||
....#.................................#...............................................#.....................................................
|
||||
...............#...........................................................#............................................................#...
|
||||
..................................#...........................................................#...................#...........#.............
|
||||
....................................................................................................................................#.......
|
||||
................................................................#................#..........................#...............................
|
||||
...#..............#........#.........#.............#........................................................................................
|
||||
.........................................................#.............#.............#..............#...................#...................
|
||||
........#...................................................................................................................................
|
||||
..............................................................................................#.................................#........#..
|
||||
....................#.......................................#.....................................................#.........................
|
||||
#..............................#.......#......#...................................#......#..................................................
|
||||
...........#.......................................#......................................................................#.................
|
||||
.......................................................................................................................................#....
|
||||
............................................................................................................................................
|
||||
.........................#...................................#...............................#..............................................
|
||||
..................................#.......................................................................#.............#...................
|
||||
.........................................#...........................#...............................#.........#..........................#.
|
||||
............#......#............................................#...............................#...................................#.......
|
||||
.............................#.....................................................#........................................................
|
||||
....#........................................#...............................#.................................................#............
|
||||
......................#............................#.....#.........#........................................................................
|
||||
.........................................................................................................#..................................
|
||||
.......#........................#................................................#..........................................................
|
||||
...............................................#..........................#................#..........................................#.....
|
||||
.#................#.............................................................................................#......#....................
|
||||
..............................................................................................................................#.............
|
||||
..........................#........................#.............................................#..........................................
|
||||
.............#..........................#............................................#..............................#.......................
|
||||
........#..............................................#.....................#..........................#..................#................
|
||||
............................................................#.....#..................................................................#......
|
||||
....................#.........................#..........................#..................#...................#...........................
|
||||
..............................#...................................................#................#........................................
|
||||
.........................................#..............................................#..................................................#
|
||||
.#........#.........................................#.....................................................#.....................#...........
|
||||
.........................................................#.........................................................#........................
|
||||
......#...........................#.........................................................................................................
|
||||
................................................#........................................................................................#..
|
||||
...................................................................#...............#........................................................
|
||||
.....................#................................#..............................................................................#......
|
||||
...........#................................................................................#.....#.........................................
|
||||
....#........................#............................................#..............................................#..................
|
||||
................#.......#........................................................#........................................................#.
|
||||
#...................................................................................................................#.......................
|
||||
....................#...................#..............#.................................#...................#..............................
|
||||
.............#....................#.................................................#..................#...................#................
|
||||
.................................................................................................................#.....................#....
|
||||
................................................................................#...........................................................
|
||||
.......................#.............#....................#.................................................................................
|
||||
.......#.............................................................................................#..............#.......................
|
||||
...................#.....................................................................................................................#..
|
||||
......................................................#..................#.......................................................#..........
|
||||
..........................#..................................................................#..............................................
|
||||
............#.................................#.........................................#...................#............#..................
|
||||
.....................#......................................#......................................................#..........#.............
|
||||
.#.........................................................................#......#...................#.....................................
|
||||
............................................................................................................................................
|
||||
................................#...........................................................#...............................................
|
||||
........................................#..........................#..................................................#.................#...
|
||||
....#........................................#.....................................................#.............................#..........
|
||||
..........................................................#.................................................................................
|
||||
...............#............................................................................................................................
|
||||
..........#............#............................#.............................#...........................................#......#......
|
||||
....................................#........................................................#...............#..............................
|
||||
...........................................#..............................#...............................................................#.
|
||||
.#...........................#.......................................................................#......................................
|
||||
.........................................................#...........#....................................#.................................
|
||||
......#.......#...................#...........................#.......................#.........#..................#........................
|
||||
............................................................................#.........................................................#.....
|
||||
.....................#.........................................................................................#........#...................
|
||||
..........................#.............................................#................#........................................#.........
|
||||
............................................................................................................................................
|
||||
....#.....#.....#..................................#.........#.....................#....................#...................................
|
||||
........................................#.....................................................................................#.............
|
||||
...............................................................................................#............................................
|
||||
.......#........................#...........................................#............................................................#..
|
||||
....................#......#....................#...........................................................................................
|
||||
.........................................................#...........#..........#.............................#...........#.................
|
||||
......................................................................................#.....................................................
|
||||
....................................................................................................#................#..........#.....#.....
|
||||
............#.........#.....................#...............#..............................................#................................
|
||||
.......#............................#.......................................................................................................
|
||||
.......................................................................#......................#................#...................#........
|
||||
............................................................................................................................................
|
||||
........................................................................................................................#...................
|
||||
..........#..........#.......................#.........................................................................................#....
|
||||
...................................................................#.................#...........#..........................................
|
||||
........................................#................#..................................................................................
|
||||
................#....................................................................................................#......................
|
||||
............................................................................................................................................
|
||||
.......#....................#.................................................................#...............#.........................#...
|
||||
.................................#...........#.....#...........................................................................#............
|
||||
...........#.......................................................#....................#...................................................
|
||||
........................................#...............................................................................#...................
|
||||
............................................................................................................................................
|
||||
.....................................................................................................#......................................
|
||||
................#.........................................#..................#................................................#.......#.....
|
||||
....#................................#.............#...................................#.....................#.......#......................
|
||||
.........................#......................................#...........................................................................
|
||||
...........................................................................................#.......#........................................
|
||||
..........#.....................#..............#........................#...................................................................
|
||||
..#.........................................................................................................................................
|
||||
....................#.....................................#.......................#.........................................................
|
||||
..........................#.............#...............................................................................#.........#.........
|
||||
......................................................................................#.....................................................
|
||||
.....................................................................#..........................#...........................................
|
||||
.......#.........#...........................................................#.......................#........#............#............#...
|
||||
........................#....................................#..............................................................................
|
||||
.......................................#............................................#....................#.........................#........
|
||||
..............................................#....................................................................#........................
|
||||
..............#..................#.....................................#..........................#.........................................
|
||||
..........................................#..........#..........................#...........................................................
|
||||
.....#......................................................................................#................#..............................
|
||||
.....................#................................................................#.......................................#.............
|
||||
.....................................................................#......................................................................
|
||||
...........#.....#............................#.....................................................................................#.......
|
||||
................................#.....#..........................#........#..........................................#....................#.
|
||||
...........................#.................................................................#........#.......#.............................
|
||||
#...........................................................................................................................................
|
||||
........#........................................#...................................#......................................................
|
||||
.............................................................................................................................#..............
|
||||
.................................#..............................#........................#.........#........#...............................
|
||||
............#.....#..........................#.......................#....................................................................#.
|
||||
........................#........................................................#..........................................................
|
||||
............................................................#..............#......................................#.........................
|
||||
...#........................................................................................#...............................................
|
||||
...........................................................................................................#......................#.........
|
||||
..........#.......................................................................................#.........................................
|
||||
......................#................#............................................#.................................................#.....
|
||||
...........................#.....................#........#...................................................#.............................
|
8
day_11/part_1/Cargo.toml
Normal file
8
day_11/part_1/Cargo.toml
Normal file
|
@ -0,0 +1,8 @@
|
|||
[package]
|
||||
name = "day_11-1"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
50
day_11/part_1/src/main.rs
Normal file
50
day_11/part_1/src/main.rs
Normal file
|
@ -0,0 +1,50 @@
|
|||
use std::cmp;
|
||||
|
||||
fn main() {
|
||||
let input = include_str!("../../input.txt")
|
||||
.lines()
|
||||
.map(|line| line.chars().collect::<Vec<char>>())
|
||||
.collect::<Vec<Vec<char>>>();
|
||||
|
||||
let mut galaxies: Vec<(usize, usize)> = vec![];
|
||||
let mut double_rows: Vec<usize> = vec![];
|
||||
let mut double_columns: Vec<usize> = vec![];
|
||||
|
||||
for (i, line) in input.iter().enumerate() {
|
||||
if !line.contains(&'#') {
|
||||
double_rows.push(i);
|
||||
}
|
||||
}
|
||||
|
||||
'deez: for i in 0..input[0].len() {
|
||||
for row in &input {
|
||||
if row[i] == '#' {
|
||||
continue 'deez;
|
||||
}
|
||||
}
|
||||
double_columns.push(i);
|
||||
}
|
||||
|
||||
for (i, line) in input.iter().enumerate() {
|
||||
for (j, c) in line.iter().enumerate() {
|
||||
if c == &'#' {
|
||||
galaxies.push((i, j));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let mut result = 0;
|
||||
for (i, galaxy_1) in galaxies.iter().enumerate() {
|
||||
for galaxy_2 in galaxies.iter().skip(i + 1) {
|
||||
for x in cmp::min(galaxy_1.0, galaxy_2.0)+1..=cmp::max(galaxy_1.0, galaxy_2.0) {
|
||||
result += 1 * if double_rows.contains(&x) { 2 } else { 1 };
|
||||
}
|
||||
|
||||
for y in cmp::min(galaxy_1.1, galaxy_2.1)+1..=cmp::max(galaxy_1.1, galaxy_2.1) {
|
||||
result += 1 * if double_columns.contains(&y) { 2 } else { 1 };
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
println!("Result: {result}");
|
||||
}
|
8
day_11/part_2/Cargo.toml
Normal file
8
day_11/part_2/Cargo.toml
Normal file
|
@ -0,0 +1,8 @@
|
|||
[package]
|
||||
name = "day_11-2"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
51
day_11/part_2/src/main.rs
Normal file
51
day_11/part_2/src/main.rs
Normal file
|
@ -0,0 +1,51 @@
|
|||
use std::cmp;
|
||||
|
||||
fn main() {
|
||||
let input = include_str!("../../input.txt")
|
||||
.lines()
|
||||
.map(|line| line.chars().collect::<Vec<char>>())
|
||||
.collect::<Vec<Vec<char>>>();
|
||||
|
||||
let mut galaxies: Vec<(usize, usize)> = vec![];
|
||||
let mut double_rows: Vec<usize> = vec![];
|
||||
let mut double_columns: Vec<usize> = vec![];
|
||||
|
||||
for (i, line) in input.iter().enumerate() {
|
||||
if !line.contains(&'#') {
|
||||
double_rows.push(i);
|
||||
}
|
||||
}
|
||||
|
||||
'deez: for i in 0..input[0].len() {
|
||||
for row in &input {
|
||||
if row[i] == '#' {
|
||||
continue 'deez;
|
||||
}
|
||||
}
|
||||
double_columns.push(i);
|
||||
}
|
||||
|
||||
for (i, line) in input.iter().enumerate() {
|
||||
for (j, c) in line.iter().enumerate() {
|
||||
if c == &'#' {
|
||||
galaxies.push((i, j));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// already used the correct approach in part 1 :3
|
||||
let mut result: i64 = 0;
|
||||
for (i, galaxy_1) in galaxies.iter().enumerate() {
|
||||
for galaxy_2 in galaxies.iter().skip(i + 1) {
|
||||
for x in cmp::min(galaxy_1.0, galaxy_2.0)+1..=cmp::max(galaxy_1.0, galaxy_2.0) {
|
||||
result += 1 * if double_rows.contains(&x) { 1000000 } else { 1 };
|
||||
}
|
||||
|
||||
for y in cmp::min(galaxy_1.1, galaxy_2.1)+1..=cmp::max(galaxy_1.1, galaxy_2.1) {
|
||||
result += 1 * if double_columns.contains(&y) { 1000000 } else { 1 };
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
println!("Result: {result}");
|
||||
}
|
Loading…
Reference in a new issue