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)
|
||||
|
||||
## Progress
|
||||
- [ ] Day 01
|
||||
- [ ] Day 02
|
||||
- [ ] Day 03
|
||||
- [ ] Day 04
|
||||
- [ ] Day 05
|
||||
- [ ] Day 06
|
||||
- [ ] Day 07
|
||||
- [ ] Day 08
|
||||
- [ ] Day 09
|
||||
- [ ] Day 10
|
||||
- [ ] Day 11
|
||||
- [ ] Day 12
|
||||
- [ ] Day 13
|
||||
- [ ] Day 14
|
||||
- [ ] Day 15
|
||||
- [ ] Day 16
|
||||
- [ ] Day 17
|
||||
- [ ] Day 18
|
||||
- [ ] Day 19
|
||||
- [ ] Day 20
|
||||
- [ ] Day 21
|
||||
- [ ] Day 22
|
||||
- [ ] Day 23
|
||||
- [ ] Day 24
|
||||
- [ ] Day 25
|
||||
| Solved | Day | Language |
|
||||
| :----: | :-: | :------- |
|
||||
| ✓ | 01 | Rust |
|
||||
| | 02 | |
|
||||
| | 03 | |
|
||||
| | 04 | |
|
||||
| | 05 | |
|
||||
| | 06 | |
|
||||
| | 07 | |
|
||||
| | 08 | |
|
||||
| | 09 | |
|
||||
| | 10 | |
|
||||
| | 11 | |
|
||||
| | 12 | |
|
||||
| | 13 | |
|
||||
| | 14 | |
|
||||
| | 15 | |
|
||||
| | 16 | |
|
||||
| | 17 | |
|
||||
| | 18 | |
|
||||
| | 19 | |
|
||||
| | 20 | |
|
||||
| | 21 | |
|
||||
| | 22 | |
|
||||
| | 23 | |
|
||||
| | 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