Skip to content

Latest commit

 

History

History
149 lines (146 loc) · 3.64 KB

README.md

File metadata and controls

149 lines (146 loc) · 3.64 KB

Advent Of Code 2018 - Leo Feldman's Answers

Hey all, I am participating in the Advent of Code 2018 challenge in order to brush up on my ability to solve problems and write algorithms! My solutions will generally be written with C#, but I am also looking to use this challenge to get some experience writing with a different language (looking at Go, Ruby.)

Language used to solve problem initially

Day 1 - C#
Day 2 - C#
Day 3 - C#
Day 4 - C#
Day 5 - C#
Day 6 - C#
Day 7 - C#
Day 8 - C#
Day 9 - Go
Day 10 - Java
Day 11 - Go
Day 12 - Go
Day 13 - Go
Day 14 - Go
Day 15 - Go
Day 16 - Go
Day 17 - Go
Day 18 - Go
Day 19 - Go
Day 20 - Go
Day 21 - Go
Day 22 - Go
Day 23 - Go
Day 24 - Go
Day 25 - Go

Skillsets needed (included personal difficulty assessment)

  1. Day 1 - EASY
  • Arithmetic (Addition)
  • Cycles (Looping and Iteration)
  • Sets
  1. Day 2 - EASY
  • Mapping counts / grouping
  • String manipulation
  1. Day 3 - EASY
  • String parsing
  • Two dimensional arrays
  1. Day 4 - INTERMEDIATE
  • String parsing
  • Sorting/ordering
  • Finding max value
  1. Day 5 - INTERMEDIATE
  • Stacks or recursion
  • Character/byte comparison
  • Finding min value
  1. Day 6 - INTERMEDIATE
  • String parsing
  • Two dimensional arrays
  • Manhattan Distance / Coordinate distance
  • Minimum bounding box
  1. Day 7 - INTERMEDIATE
  • String parsing
  • DAGs (Directed Acyclic Graph)
  • Topological sorting
  1. Day 8 - INTERMEDIATE
  • String parsing
  • Recursion
  • Trees
  1. Day 9 - INTERMEDIATE
  • Linked Lists
  • Finding max value
  1. Day 10 - INTERMEDIATE
  • String parsing
  • Minimum bounding box
  • Coordinate distance
  • Graphics
  1. Day 11 - INTERMEDIATE
  • Two-dimensional arrays
  • Arithmetic
  • Rounding
  • Summed-Area table
  1. Day 12 - HARD
  • String parsing
  • Linked Lists
  • State machines
  • Pattern recognition
  • Conway's Game of Life
  1. Day 13 - INTERMEDIATE
  • String parsing
  • Sorting
  • Two-dimensional arrays
  • Switch statements
  1. Day 14 - INTERMEDIATE
  • Arithmetics
  • Loops
  1. Day 15 - EXPERT
  • Patience
  • True grit
  • Attention to detail
  • Debugging skillz
  • String parsing
  • Switch statements
  • Path-finding
    • Breadth-First Search
    • Dijkstra's Algorithm
  • Two-dimensional arrays
  • Game state
  1. Day 16 - INTERMEDIATE
  • String parsing
  • Function types
  • Process of elimination
  • Assembly concepts
  1. Day 17 - HARD
  • String parsing
  • 2 dimensional arrays
  • Stacks
  • Minimum bounding box
  1. Day 18 - INTERMEDIATE
  • Conway's Game of Life
  • Pattern recognition
  • 2 dimensional arrays
  1. Day 19 - EXPERT
  • String parsing
  • Assembly
  • Reverse-engineering
  1. Day 20 - INTERMEDIATE (Incorrect problem description, can be EXPERT level if you actually follow the instructions)
  • String parsing
  • Stacks
  • Path-finding (Breadth-first search)
  • Graph diameter (Floyd–Warshall Algorithm)
  1. Day 21 - EXPERT
  • Assembly
  • Reverse-engineering
  • Pattern recognition
  1. Day 22 - HARD
  • 2 dimensional arrays
  • 3 dimensional arrays
  • Arithmetic
  • Path-finding
    • Dijkstra's Algorithm
    • A*
  1. Day 23 - EXPERT
  • Visualizing 3-dimensional space
  • Manhattan distance
  • Finding max value
  • Space partitioning (NOTE: there are multiple ways to solve this problem, but I believe this is by far the best way. I used octrees - partitioned space into 8 parts)
  1. Day 24 - HARD
  • String parsing
  • Game state
  • Debugging (you are bound to mess up here, follow the rules!)
  1. Day 25 - INTERMEDIATE
  • Manhattan distance
  • 4-dimensional space
  • Union-Find algorithm