Day 1
This commit is contained in:
		
						commit
						b9e3aff8f4
					
				
					 6 changed files with 173 additions and 0 deletions
				
			
		
							
								
								
									
										3
									
								
								.gitignore
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.gitignore
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,3 @@ | |||
| /target | ||||
| .history | ||||
| input | ||||
							
								
								
									
										113
									
								
								Cargo.lock
									
										
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										113
									
								
								Cargo.lock
									
										
									
										generated
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,113 @@ | |||
| # This file is automatically @generated by Cargo. | ||||
| # It is not intended for manual editing. | ||||
| [[package]] | ||||
| name = "advent_of_code_2020" | ||||
| version = "0.1.0" | ||||
| dependencies = [ | ||||
|  "aoc-runner", | ||||
|  "aoc-runner-derive", | ||||
| ] | ||||
| 
 | ||||
| [[package]] | ||||
| name = "aoc-runner" | ||||
| version = "0.3.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "d21ef9204ad206a5a3e918e9920da04e1118ad91ce4f23570be964b9d6b9dfcb" | ||||
| 
 | ||||
| [[package]] | ||||
| name = "aoc-runner-derive" | ||||
| version = "0.3.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "ba8b944269d3fee645d281b1335e1797044db497bb02d0098cc3fdb8900069cc" | ||||
| dependencies = [ | ||||
|  "aoc-runner-internal", | ||||
|  "proc-macro2", | ||||
|  "quote", | ||||
|  "syn", | ||||
| ] | ||||
| 
 | ||||
| [[package]] | ||||
| name = "aoc-runner-internal" | ||||
| version = "0.1.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "274b0ba7f3669a45ec0aaacf94eb032a749de880ab776091576cca94037c9982" | ||||
| dependencies = [ | ||||
|  "serde", | ||||
|  "serde_derive", | ||||
|  "serde_json", | ||||
| ] | ||||
| 
 | ||||
| [[package]] | ||||
| name = "itoa" | ||||
| version = "0.4.6" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6" | ||||
| 
 | ||||
| [[package]] | ||||
| name = "proc-macro2" | ||||
| version = "1.0.24" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71" | ||||
| dependencies = [ | ||||
|  "unicode-xid", | ||||
| ] | ||||
| 
 | ||||
| [[package]] | ||||
| name = "quote" | ||||
| version = "1.0.7" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37" | ||||
| dependencies = [ | ||||
|  "proc-macro2", | ||||
| ] | ||||
| 
 | ||||
| [[package]] | ||||
| name = "ryu" | ||||
| version = "1.0.5" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e" | ||||
| 
 | ||||
| [[package]] | ||||
| name = "serde" | ||||
| version = "1.0.117" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "b88fa983de7720629c9387e9f517353ed404164b1e482c970a90c1a4aaf7dc1a" | ||||
| 
 | ||||
| [[package]] | ||||
| name = "serde_derive" | ||||
| version = "1.0.117" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "cbd1ae72adb44aab48f325a02444a5fc079349a8d804c1fc922aed3f7454c74e" | ||||
| dependencies = [ | ||||
|  "proc-macro2", | ||||
|  "quote", | ||||
|  "syn", | ||||
| ] | ||||
| 
 | ||||
| [[package]] | ||||
| name = "serde_json" | ||||
| version = "1.0.59" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "dcac07dbffa1c65e7f816ab9eba78eb142c6d44410f4eeba1e26e4f5dfa56b95" | ||||
| dependencies = [ | ||||
|  "itoa", | ||||
|  "ryu", | ||||
|  "serde", | ||||
| ] | ||||
| 
 | ||||
| [[package]] | ||||
| name = "syn" | ||||
| version = "1.0.53" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "8833e20724c24de12bbaba5ad230ea61c3eafb05b881c7c9d3cfe8638b187e68" | ||||
| dependencies = [ | ||||
|  "proc-macro2", | ||||
|  "quote", | ||||
|  "unicode-xid", | ||||
| ] | ||||
| 
 | ||||
| [[package]] | ||||
| name = "unicode-xid" | ||||
| version = "0.2.1" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564" | ||||
							
								
								
									
										11
									
								
								Cargo.toml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								Cargo.toml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,11 @@ | |||
| [package] | ||||
| name = "advent_of_code_2020" | ||||
| version = "0.1.0" | ||||
| authors = ["Daniel Seiller <earthnuker@gmail.com>"] | ||||
| edition = "2018" | ||||
| 
 | ||||
| # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html | ||||
| 
 | ||||
| [dependencies] | ||||
| aoc-runner = "0.3.0" | ||||
| aoc-runner-derive = "0.3.0" | ||||
							
								
								
									
										40
									
								
								src/day1.rs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								src/day1.rs
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,40 @@ | |||
| use aoc_runner_derive::{aoc,aoc_generator}; | ||||
| 
 | ||||
| #[aoc_generator(day1)] | ||||
| pub fn input_generator(input: &str) -> Vec<usize> { | ||||
|     input.lines().map(|l| l.trim().parse()).collect::<Result<Vec<usize>,_>>().unwrap() | ||||
| } | ||||
| 
 | ||||
| #[aoc(day1, part1)] | ||||
| pub fn solve_part1(input: &Vec<usize>) -> usize { | ||||
|     let mut input=input.clone(); | ||||
|     input.sort(); | ||||
|     for (i1,v1) in input.iter().enumerate() { | ||||
|         if v1>&2020 {break;} | ||||
|         for v2 in input.iter().skip(i1+1) { | ||||
|             if (v1+v2)==2020 { | ||||
|                 return v1*v2; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     unimplemented!(); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| #[aoc(day1, part2)] | ||||
| pub fn solve_part2(input: &Vec<usize>) -> usize { | ||||
|     let mut input=input.clone(); | ||||
|     input.sort(); | ||||
|     for (i1,v1) in input.iter().enumerate() { | ||||
|         if v1>&2020 {break;} | ||||
|         for (i2,v2) in input.iter().enumerate().skip(i1+1) { | ||||
|             if (v1+v2)>2020 {break;} | ||||
|             for v3 in input.iter().skip(i2+1) { | ||||
|                 if (v1+v2+v3)==2020 { | ||||
|                     return v1*v2*v3; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     unimplemented!(); | ||||
| } | ||||
							
								
								
									
										3
									
								
								src/lib.rs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								src/lib.rs
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,3 @@ | |||
| use aoc_runner_derive::aoc_lib; | ||||
| pub mod day1; | ||||
| aoc_lib! { year = 2020 } | ||||
							
								
								
									
										3
									
								
								src/main.rs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								src/main.rs
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,3 @@ | |||
| extern crate advent_of_code_2020; | ||||
| use aoc_runner_derive::aoc_main; | ||||
| aoc_main! { lib  = advent_of_code_2020 } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue