Day 3 Complete
Also clean up some of the problem files
This commit is contained in:
		@@ -1,19 +1,4 @@
 | 
				
			|||||||
                                                                                                                Advent of Code
 | 
					Advent of Code
 | 
				
			||||||
 | 
					 | 
				
			||||||
     • [About]
 | 
					 | 
				
			||||||
     • [AoC++]
 | 
					 | 
				
			||||||
     • [Events]
 | 
					 | 
				
			||||||
     • [Settings]
 | 
					 | 
				
			||||||
     • [Log Out]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   br0xen (AoC++) 2*
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                                                                                                                   <y>2016</y>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
     • [Calendar]
 | 
					 | 
				
			||||||
     • [Leaderboard]
 | 
					 | 
				
			||||||
     • [Stats]
 | 
					 | 
				
			||||||
     • [Sponsors]
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
--- Day 1: No Time for a Taxicab ---
 | 
					--- Day 1: No Time for a Taxicab ---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -56,8 +41,6 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
   If you still want to see it, you can get your puzzle input.
 | 
					   If you still want to see it, you can get your puzzle input.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   You can also [Shareon Twitter Google+ Reddit] this puzzle.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
References
 | 
					References
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   Visible links
 | 
					   Visible links
 | 
				
			||||||
@@ -76,6 +59,3 @@ References
 | 
				
			|||||||
   . https://en.wikipedia.org/wiki/Taxicab_geometry
 | 
					   . https://en.wikipedia.org/wiki/Taxicab_geometry
 | 
				
			||||||
   . http://adventofcode.com/2016
 | 
					   . http://adventofcode.com/2016
 | 
				
			||||||
   . http://adventofcode.com/2016/day/1/input
 | 
					   . http://adventofcode.com/2016/day/1/input
 | 
				
			||||||
   . https://twitter.com/intent/tweet?text=I%27ve+completed+%22No+Time+for+a+Taxicab%22+%2D+Day+1+%2D+Advent+of+Code+2016&url=http%3A%2F%2Fadventofcode%2Ecom%2F2016%2Fday%2F1&related=ericwastl&hashtags=AdventOfCode
 | 
					 | 
				
			||||||
   . https://plus.google.com/share?url=http%3A%2F%2Fadventofcode%2Ecom%2F2016%2Fday%2F1
 | 
					 | 
				
			||||||
   . http://www.reddit.com/submit?url=http%3A%2F%2Fadventofcode%2Ecom%2F2016%2Fday%2F1&title=I%27ve+completed+%22No+Time+for+a+Taxicab%22+%2D+Day+1+%2D+Advent+of+Code+2016
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,19 +1,4 @@
 | 
				
			|||||||
                                                       Advent of Code
 | 
					Advent of Code
 | 
				
			||||||
 | 
					 | 
				
			||||||
     • [About]
 | 
					 | 
				
			||||||
     • [AoC++]
 | 
					 | 
				
			||||||
     • [Events]
 | 
					 | 
				
			||||||
     • [Settings]
 | 
					 | 
				
			||||||
     • [Log Out]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   br0xen (AoC++) 4*
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                                                          <y>2016</y>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
     • [Calendar]
 | 
					 | 
				
			||||||
     • [Leaderboard]
 | 
					 | 
				
			||||||
     • [Stats]
 | 
					 | 
				
			||||||
     • [Sponsors]
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
--- Day 2: Bathroom Security ---
 | 
					--- Day 2: Bathroom Security ---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -89,8 +74,6 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
   If you still want to see it, you can get your puzzle input.
 | 
					   If you still want to see it, you can get your puzzle input.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   You can also [Shareon Twitter Google+ Reddit] this puzzle.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
References
 | 
					References
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   Visible links
 | 
					   Visible links
 | 
				
			||||||
@@ -108,6 +91,3 @@ References
 | 
				
			|||||||
   . http://adventofcode.com/2016/sponsors
 | 
					   . http://adventofcode.com/2016/sponsors
 | 
				
			||||||
   . http://adventofcode.com/2016
 | 
					   . http://adventofcode.com/2016
 | 
				
			||||||
   . http://adventofcode.com/2016/day/2/input
 | 
					   . http://adventofcode.com/2016/day/2/input
 | 
				
			||||||
   . https://twitter.com/intent/tweet?text=I%27ve+completed+%22Bathroom+Security%22+%2D+Day+2+%2D+Advent+of+Code+2016&url=http%3A%2F%2Fadventofcode%2Ecom%2F2016%2Fday%2F2&related=ericwastl&hashtags=AdventOfCode
 | 
					 | 
				
			||||||
   . https://plus.google.com/share?url=http%3A%2F%2Fadventofcode%2Ecom%2F2016%2Fday%2F2
 | 
					 | 
				
			||||||
   . http://www.reddit.com/submit?url=http%3A%2F%2Fadventofcode%2Ecom%2F2016%2Fday%2F2&title=I%27ve+completed+%22Bathroom+Security%22+%2D+Day+2+%2D+Advent+of+Code+2016
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										
											BIN
										
									
								
								day03/day03
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								day03/day03
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										1599
									
								
								day03/input
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1599
									
								
								day03/input
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										88
									
								
								day03/main.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										88
									
								
								day03/main.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,88 @@
 | 
				
			|||||||
 | 
					package main
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						"bufio"
 | 
				
			||||||
 | 
						"fmt"
 | 
				
			||||||
 | 
						"log"
 | 
				
			||||||
 | 
						"os"
 | 
				
			||||||
 | 
						"sort"
 | 
				
			||||||
 | 
						"strconv"
 | 
				
			||||||
 | 
						"strings"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func main() {
 | 
				
			||||||
 | 
						input := stdinToStringSlice()
 | 
				
			||||||
 | 
						puzzleOne(input)
 | 
				
			||||||
 | 
						puzzleTwo(input)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func puzzleOne(input []string) {
 | 
				
			||||||
 | 
						fmt.Println("=== Puzzle One ===")
 | 
				
			||||||
 | 
						var numGood int
 | 
				
			||||||
 | 
						var sides []int
 | 
				
			||||||
 | 
						for i := range input {
 | 
				
			||||||
 | 
							pts := strings.Fields(input[i])
 | 
				
			||||||
 | 
							sides = []int{atoi(pts[0]), atoi(pts[1]), atoi(pts[2])}
 | 
				
			||||||
 | 
							if isValidTriangle(sides) {
 | 
				
			||||||
 | 
								numGood++
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						fmt.Println("Found Good: ", numGood)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func puzzleTwo(input []string) {
 | 
				
			||||||
 | 
						fmt.Println("=== Puzzle Two ===")
 | 
				
			||||||
 | 
						var numGood int
 | 
				
			||||||
 | 
						var sides1, sides2, sides3 []int
 | 
				
			||||||
 | 
						for i := range input {
 | 
				
			||||||
 | 
							pts := strings.Fields(input[i])
 | 
				
			||||||
 | 
							sides1 = append(sides1, atoi(pts[0]))
 | 
				
			||||||
 | 
							sides2 = append(sides2, atoi(pts[1]))
 | 
				
			||||||
 | 
							sides3 = append(sides3, atoi(pts[2]))
 | 
				
			||||||
 | 
							if len(sides1) == 3 {
 | 
				
			||||||
 | 
								if isValidTriangle(sides1) {
 | 
				
			||||||
 | 
									numGood++
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								if isValidTriangle(sides2) {
 | 
				
			||||||
 | 
									numGood++
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								if isValidTriangle(sides3) {
 | 
				
			||||||
 | 
									numGood++
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								sides1 = []int{}
 | 
				
			||||||
 | 
								sides2 = []int{}
 | 
				
			||||||
 | 
								sides3 = []int{}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						fmt.Println("Found Good: ", numGood)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func isValidTriangle(sides []int) bool {
 | 
				
			||||||
 | 
						sort.Ints(sides)
 | 
				
			||||||
 | 
						if sides[2] < (sides[1] + sides[0]) {
 | 
				
			||||||
 | 
							return true
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return false
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func itoa(i int) string {
 | 
				
			||||||
 | 
						return strconv.Itoa(i)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func atoi(i string) int {
 | 
				
			||||||
 | 
						var ret int
 | 
				
			||||||
 | 
						var err error
 | 
				
			||||||
 | 
						if ret, err = strconv.Atoi(i); err != nil {
 | 
				
			||||||
 | 
							log.Fatal("Invalid Atoi")
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return ret
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func stdinToStringSlice() []string {
 | 
				
			||||||
 | 
						var input []string
 | 
				
			||||||
 | 
						scanner := bufio.NewScanner(os.Stdin)
 | 
				
			||||||
 | 
						for scanner.Scan() {
 | 
				
			||||||
 | 
							input = append(input, scanner.Text())
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return input
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										59
									
								
								day03/problem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								day03/problem
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,59 @@
 | 
				
			|||||||
 | 
					Advent of Code
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--- Day 3: Squares With Three Sides ---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Now that you can think clearly, you move deeper into the labyrinth of hallways and office
 | 
				
			||||||
 | 
					   furniture that makes up this part of Easter Bunny HQ. This must be a graphic design
 | 
				
			||||||
 | 
					   department; the walls are covered in specifications for triangles.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Or are they?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   The design document gives the side lengths of each triangle it describes, but... 5 10 25? Some
 | 
				
			||||||
 | 
					   of these aren't triangles. You can't help but mark the impossible ones.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   In a valid triangle, the sum of any two sides must be larger than the remaining side. For
 | 
				
			||||||
 | 
					   example, the "triangle" given above is impossible, because 5 + 10 is not larger than 25.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   In your puzzle input, how many of the listed triangles are possible?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Your puzzle answer was 869.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   The first half of this puzzle is complete! It provides one gold star: *
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--- Part Two ---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Now that you've helpfully marked up their design documents, it occurs to you that triangles
 | 
				
			||||||
 | 
					   are specified in groups of three vertically. Each set of three numbers in a column specifies a
 | 
				
			||||||
 | 
					   triangle. Rows are unrelated.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   For example, given the following specification, numbers with the same hundreds digit would be
 | 
				
			||||||
 | 
					   part of the same triangle:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 101 301 501
 | 
				
			||||||
 | 
					 102 302 502
 | 
				
			||||||
 | 
					 103 303 503
 | 
				
			||||||
 | 
					 201 401 601
 | 
				
			||||||
 | 
					 202 402 602
 | 
				
			||||||
 | 
					 203 403 603
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   In your puzzle input, and instead reading by columns, how many of the listed triangles are
 | 
				
			||||||
 | 
					   possible?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Although it hasn't changed, you can still get your puzzle input.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					References
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Visible links
 | 
				
			||||||
 | 
					   . http://adventofcode.com/
 | 
				
			||||||
 | 
					   . http://adventofcode.com/2016/about
 | 
				
			||||||
 | 
					   . http://adventofcode.com/2016/support
 | 
				
			||||||
 | 
					   . http://adventofcode.com/2016/events
 | 
				
			||||||
 | 
					   . http://adventofcode.com/2016/settings
 | 
				
			||||||
 | 
					   . http://adventofcode.com/2016/auth/logout
 | 
				
			||||||
 | 
					   . http://adventofcode.com/2016
 | 
				
			||||||
 | 
					   . http://adventofcode.com/2016
 | 
				
			||||||
 | 
					   . http://adventofcode.com/2016/leaderboard
 | 
				
			||||||
 | 
					   . http://adventofcode.com/2016/stats
 | 
				
			||||||
 | 
					   . http://adventofcode.com/2016/sponsors
 | 
				
			||||||
 | 
					   . http://adventofcode.com/2016/sponsors
 | 
				
			||||||
 | 
					   . http://adventofcode.com/2016/day/3/input
 | 
				
			||||||
		Reference in New Issue
	
	Block a user