Skip to content

Instantly share code, notes, and snippets.

@keithn
keithn / lca.cs
Last active August 29, 2015 14:27
lca
public class Node<T> where T:IComparable
{
public T Value { get; private set; }
public Node<T> Left { get; set; }
public Node<T> Right { get; set; }
public Node(T value)
{
Value = value;
}
@keithn
keithn / dayOne.fs
Last active December 2, 2016 12:02
Advent Of Code 2016 - Day 1
type Direction = North | South | East | West
type Position = { x: int; y: int }
type Walker = { facing: Direction; location: Position; history: Position list}
let rotateRight (d:Direction) =
match d with
| North -> East
| East -> South
@keithn
keithn / day2.fs
Last active December 3, 2016 01:06
AdventOfCode 2016 Day2
module Day2
open System
let code = @"
LRRLLLRDRURUDLRDDURULRULLDLRRLRLDULUDDDDLLRRLDUUDULDRURRLDULRRULDLRDUDLRLLLULDUURRRRURURULURRULRURDLULURDRDURDRLRRUUDRULLLLLDRULDDLLRDLURRLDUURDLRLUDLDUDLURLRLDRLUDUULRRRUUULLRDURUDRUDRDRLLDLDDDLDLRRULDUUDULRUDDRLLURDDRLDDUDLLLLULRDDUDDUUULRULUULRLLDULUDLLLLURRLDLUDLDDLDRLRRDRDUDDDLLLLLRRLLRLUDLULLDLDDRRUDDRLRDDURRDULLLURLRDLRRLRDLDURLDDULLLDRRURDULUDUDLLLDDDLLRLDDDLLRRLLURUULULDDDUDULUUURRUUDLDULULDRDDLURURDLDLULDUDUDDDDD
RUURUDRDUULRDDLRLLLULLDDUDRDURDLRUULLLLUDUDRRUDUULRRUUDDURDDDLLLLRRUURULULLUDDLRDUDULRURRDRDLDLDUULUULUDDLUDRLULRUDRDDDLRRUUDRRLULUULDULDDLRLURDRLURRRRULDDRLDLLLRULLDURRLUDULDRDUDRLRLULRURDDRLUDLRURDDRDULUDLDLLLDRLRUDLLLLLDUDRDUURUDDUDLDLDUDLLDLRRDLULLURLDDUDDRDUDLDDUULDRLURRDLDLLUUDLDLURRLDRDDLLDLRLULUDRDLLLDRLRLLLDRUULUDLLURDLLUURUDURDDRDRDDUDDRRLLUULRRDRULRURRULLDDDUDULDDRULRLDURLUDULDLDDDLRULLULULUDLDDRDLRDRDLDULRRLRLRLLLLLDDDRDDULRDULRRLDLUDDDDLUDRLLDLURDLRDLDRDRDURRDUDULLLDLUDLDRLRRDDDRRLRLLULDRLRLLLLDUUURDLLULLUDDRLULRDLDLDURRRUURDUDRDLLLLLLDDDU
@keithn
keithn / day3.fs
Created December 4, 2016 11:07
Advent of Code 2016 Day 3
let isTriangle (x,y,z) =
x + y > z &&
x + z > y &&
y + z > x
let lineTo3Ints (line: string) =
let chunks = line.Split( [|" "|], StringSplitOptions.RemoveEmptyEntries )
if (Seq.length chunks) <> 3 then None
else
@keithn
keithn / Day4.fs
Created December 5, 2016 01:21
Advent Of Code 2016 - Day 4
module Day4
open System
open System.Text.RegularExpressions
let input = @"
the text the puzzle gave me....
"
let (|Regex|_|) pattern input =
let m = Regex.Match(input, pattern)
@keithn
keithn / Day5.fs
Created December 6, 2016 00:39
Advent Of Code 2016 - Day 5
module Day5
open System
open System.Security.Cryptography
open System.Text
let input = @"reyedfim"
let bytes (s:string) = Encoding.ASCII.GetBytes(s)
import sys
width = 40
height = 10
Board = [[' ' for x in range(height)] for y in range(width)]
for i in range(height):
Board[0][i] = '|'
Board[width-1][i] = '|'
@keithn
keithn / DemoDiary.cs
Last active November 14, 2018 09:22
Simple Diary to Json
using System;
using System.Collections.Generic;
using System.IO;
using DemoDiary;
using Newtonsoft.Json;
namespace DemoDiary
{
public class Diary
{
private static void Day3P1P2()
{
var data = File.ReadAllLines("Day3.txt");
var fabric = new Dictionary<(int,int), List<int>>();
foreach (var line in data)
{
var numbers = line.Split(new[] {'#', '@', ',', ':', 'x', ' '}, StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToList();
var id = numbers[0];
var left = numbers[1];
CFGM
FGM
GM
HMNP
AEMNPW
EMNPW
MNPW