Add solution for 2020 day 01
This commit is contained in:
parent
c04c9a17f5
commit
fc62292117
@ -1,28 +1,29 @@
|
|||||||
# [Advent of Code 2020](https://adventofcode.com/2020)
|
# [Advent of Code 2020](https://adventofcode.com/2020)
|
||||||
|
|
||||||
## Progress
|
| Solved | Day | Language |
|
||||||
- [ ] Day 01
|
| :----: | :-: | :------- |
|
||||||
- [ ] Day 02
|
| ✓ | 01 | Rust |
|
||||||
- [ ] Day 03
|
| | 02 | |
|
||||||
- [ ] Day 04
|
| | 03 | |
|
||||||
- [ ] Day 05
|
| | 04 | |
|
||||||
- [ ] Day 06
|
| | 05 | |
|
||||||
- [ ] Day 07
|
| | 06 | |
|
||||||
- [ ] Day 08
|
| | 07 | |
|
||||||
- [ ] Day 09
|
| | 08 | |
|
||||||
- [ ] Day 10
|
| | 09 | |
|
||||||
- [ ] Day 11
|
| | 10 | |
|
||||||
- [ ] Day 12
|
| | 11 | |
|
||||||
- [ ] Day 13
|
| | 12 | |
|
||||||
- [ ] Day 14
|
| | 13 | |
|
||||||
- [ ] Day 15
|
| | 14 | |
|
||||||
- [ ] Day 16
|
| | 15 | |
|
||||||
- [ ] Day 17
|
| | 16 | |
|
||||||
- [ ] Day 18
|
| | 17 | |
|
||||||
- [ ] Day 19
|
| | 18 | |
|
||||||
- [ ] Day 20
|
| | 19 | |
|
||||||
- [ ] Day 21
|
| | 20 | |
|
||||||
- [ ] Day 22
|
| | 21 | |
|
||||||
- [ ] Day 23
|
| | 22 | |
|
||||||
- [ ] Day 24
|
| | 23 | |
|
||||||
- [ ] Day 25
|
| | 24 | |
|
||||||
|
| | 25 | |
|
||||||
|
2
2020/day-01/.gitignore
vendored
Normal file
2
2020/day-01/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
part_one
|
||||||
|
part_two
|
15
2020/day-01/common.rs
Normal file
15
2020/day-01/common.rs
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
use std::env;
|
||||||
|
use std::fs::File;
|
||||||
|
use std::io::Read;
|
||||||
|
|
||||||
|
pub type Result<T> = std::result::Result<T, Box<dyn std::error::Error>>;
|
||||||
|
|
||||||
|
pub fn read_file() -> Result<Vec<u32>> {
|
||||||
|
let path = env::args().skip(1).next().unwrap();
|
||||||
|
|
||||||
|
let mut file = File::open(path)?;
|
||||||
|
let mut content = String::new();
|
||||||
|
file.read_to_string(&mut content)?;
|
||||||
|
|
||||||
|
Ok(content.lines().map(|l| l.parse().unwrap()).collect())
|
||||||
|
}
|
200
2020/day-01/inputs/puzzle.txt
Normal file
200
2020/day-01/inputs/puzzle.txt
Normal file
@ -0,0 +1,200 @@
|
|||||||
|
1028
|
||||||
|
1987
|
||||||
|
1938
|
||||||
|
1136
|
||||||
|
1503
|
||||||
|
1456
|
||||||
|
1107
|
||||||
|
1535
|
||||||
|
1946
|
||||||
|
1986
|
||||||
|
855
|
||||||
|
1587
|
||||||
|
1632
|
||||||
|
1548
|
||||||
|
1384
|
||||||
|
1894
|
||||||
|
1092
|
||||||
|
1876
|
||||||
|
1914
|
||||||
|
1974
|
||||||
|
1662
|
||||||
|
1608
|
||||||
|
2004
|
||||||
|
1464
|
||||||
|
1557
|
||||||
|
1485
|
||||||
|
1267
|
||||||
|
1582
|
||||||
|
1307
|
||||||
|
1903
|
||||||
|
1102
|
||||||
|
1578
|
||||||
|
1421
|
||||||
|
1184
|
||||||
|
1290
|
||||||
|
1786
|
||||||
|
1295
|
||||||
|
1930
|
||||||
|
1131
|
||||||
|
1802
|
||||||
|
1685
|
||||||
|
1735
|
||||||
|
1498
|
||||||
|
1052
|
||||||
|
1688
|
||||||
|
990
|
||||||
|
1805
|
||||||
|
1768
|
||||||
|
1922
|
||||||
|
1781
|
||||||
|
1897
|
||||||
|
1545
|
||||||
|
1591
|
||||||
|
1393
|
||||||
|
1186
|
||||||
|
149
|
||||||
|
1619
|
||||||
|
1813
|
||||||
|
1708
|
||||||
|
1119
|
||||||
|
1214
|
||||||
|
1705
|
||||||
|
1942
|
||||||
|
1684
|
||||||
|
1460
|
||||||
|
1123
|
||||||
|
1439
|
||||||
|
1672
|
||||||
|
1980
|
||||||
|
1337
|
||||||
|
1731
|
||||||
|
1203
|
||||||
|
1481
|
||||||
|
2009
|
||||||
|
1110
|
||||||
|
1116
|
||||||
|
1443
|
||||||
|
1957
|
||||||
|
1891
|
||||||
|
1595
|
||||||
|
1951
|
||||||
|
1883
|
||||||
|
1733
|
||||||
|
1697
|
||||||
|
1321
|
||||||
|
1689
|
||||||
|
1103
|
||||||
|
1300
|
||||||
|
1262
|
||||||
|
1190
|
||||||
|
1667
|
||||||
|
1843
|
||||||
|
1544
|
||||||
|
1877
|
||||||
|
1718
|
||||||
|
1866
|
||||||
|
1929
|
||||||
|
1169
|
||||||
|
1693
|
||||||
|
1518
|
||||||
|
1375
|
||||||
|
1477
|
||||||
|
1222
|
||||||
|
1791
|
||||||
|
1612
|
||||||
|
1373
|
||||||
|
1253
|
||||||
|
1087
|
||||||
|
1959
|
||||||
|
1970
|
||||||
|
1112
|
||||||
|
1778
|
||||||
|
1412
|
||||||
|
1127
|
||||||
|
1767
|
||||||
|
1091
|
||||||
|
1653
|
||||||
|
1609
|
||||||
|
1810
|
||||||
|
1912
|
||||||
|
1917
|
||||||
|
935
|
||||||
|
1499
|
||||||
|
1878
|
||||||
|
1452
|
||||||
|
1935
|
||||||
|
1937
|
||||||
|
968
|
||||||
|
1905
|
||||||
|
1077
|
||||||
|
1701
|
||||||
|
1789
|
||||||
|
1506
|
||||||
|
1451
|
||||||
|
1125
|
||||||
|
1686
|
||||||
|
1117
|
||||||
|
1991
|
||||||
|
1215
|
||||||
|
1776
|
||||||
|
1976
|
||||||
|
846
|
||||||
|
1923
|
||||||
|
1945
|
||||||
|
1888
|
||||||
|
1193
|
||||||
|
1146
|
||||||
|
1583
|
||||||
|
1315
|
||||||
|
1372
|
||||||
|
1963
|
||||||
|
1491
|
||||||
|
1777
|
||||||
|
1799
|
||||||
|
1363
|
||||||
|
1579
|
||||||
|
1367
|
||||||
|
1863
|
||||||
|
1983
|
||||||
|
1679
|
||||||
|
1944
|
||||||
|
1654
|
||||||
|
1953
|
||||||
|
1297
|
||||||
|
530
|
||||||
|
1502
|
||||||
|
1738
|
||||||
|
1934
|
||||||
|
1185
|
||||||
|
1998
|
||||||
|
1764
|
||||||
|
1856
|
||||||
|
1207
|
||||||
|
1181
|
||||||
|
1494
|
||||||
|
1676
|
||||||
|
1900
|
||||||
|
1057
|
||||||
|
339
|
||||||
|
1994
|
||||||
|
2006
|
||||||
|
1536
|
||||||
|
2007
|
||||||
|
644
|
||||||
|
1173
|
||||||
|
1692
|
||||||
|
1493
|
||||||
|
1756
|
||||||
|
1916
|
||||||
|
1890
|
||||||
|
1908
|
||||||
|
1887
|
||||||
|
1241
|
||||||
|
1447
|
||||||
|
1997
|
||||||
|
1967
|
||||||
|
1098
|
||||||
|
1287
|
||||||
|
1392
|
||||||
|
1932
|
6
2020/day-01/inputs/sample.txt
Normal file
6
2020/day-01/inputs/sample.txt
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
1721
|
||||||
|
979
|
||||||
|
366
|
||||||
|
299
|
||||||
|
675
|
||||||
|
1456
|
21
2020/day-01/part_one.rs
Normal file
21
2020/day-01/part_one.rs
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
mod common;
|
||||||
|
|
||||||
|
use common::{read_file, Result};
|
||||||
|
|
||||||
|
fn main() -> Result<()> {
|
||||||
|
let entries = read_file()?;
|
||||||
|
|
||||||
|
let mut skip_inner = 0;
|
||||||
|
|
||||||
|
for outer in &entries {
|
||||||
|
for inner in entries.iter().skip(skip_inner) {
|
||||||
|
if outer + inner == 2020 {
|
||||||
|
println!("{}", outer * inner);
|
||||||
|
return Ok(());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
skip_inner += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
26
2020/day-01/part_two.rs
Normal file
26
2020/day-01/part_two.rs
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
mod common;
|
||||||
|
|
||||||
|
use common::{read_file, Result};
|
||||||
|
|
||||||
|
fn main() -> Result<()> {
|
||||||
|
let entries = read_file()?;
|
||||||
|
|
||||||
|
let mut skip_inner = 0;
|
||||||
|
|
||||||
|
for outer in &entries {
|
||||||
|
let mut skip_innermost = 0;
|
||||||
|
|
||||||
|
for inner in entries.iter().skip(skip_inner) {
|
||||||
|
for innermost in entries.iter().skip(skip_innermost) {
|
||||||
|
if outer + inner + innermost == 2020 {
|
||||||
|
println!("{}", outer * inner * innermost);
|
||||||
|
return Ok(());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
skip_innermost += 1;
|
||||||
|
}
|
||||||
|
skip_inner += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user