Add day3 solution.
This commit is contained in:
		
							parent
							
								
									0651feb111
								
							
						
					
					
						commit
						00e8704ac3
					
				
							
								
								
									
										29
									
								
								day3.cr
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								day3.cr
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,29 @@
 | 
				
			|||||||
 | 
					INPUT = File.read("day3.txt").lines.map(&.chomp) 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def run(input, slopes)
 | 
				
			||||||
 | 
					  prod = 1_i64
 | 
				
			||||||
 | 
					  slopes.each do |slope|
 | 
				
			||||||
 | 
					    trees = 0
 | 
				
			||||||
 | 
					    pos = 0
 | 
				
			||||||
 | 
					    line = 0
 | 
				
			||||||
 | 
					    right, down = slope
 | 
				
			||||||
 | 
					    while line < input.size
 | 
				
			||||||
 | 
					      trees += 1 if input[line][pos] == '#'
 | 
				
			||||||
 | 
					      pos = (pos + right) % input[line].size
 | 
				
			||||||
 | 
					      line += down
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					    prod *= trees
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					  prod
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def part1
 | 
				
			||||||
 | 
					  puts run(INPUT, [{3,1}])
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def part2
 | 
				
			||||||
 | 
					  puts run(INPUT, [{1,1}, {3,1}, {5,1}, {7,1}, {1,2}])
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					part1
 | 
				
			||||||
 | 
					part2
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user