diff --git a/1.exs b/1.exs index c82d7d7..7fe30df 100644 --- a/1.exs +++ b/1.exs @@ -1,12 +1,6 @@ -defmodule AdventCode do - def synthesize(input, count) do - '\n' ++ rest = input - IO.puts(rest) - end -end - -{File.stream!("input-1"), 0} -|> Stream.map(&String.strip/1) -|> Stream.map(fn ({line, x}) -> x = x + "#{line}" end) -|> Stream.run - +File.stream!("input-1") +|> Stream.map(&String.trim/1) +|> Stream.map(fn n -> String.to_integer(n) end) +|> Enum.to_list +|> Enum.sum +|> IO.puts diff --git a/2.exs b/2.exs new file mode 100644 index 0000000..5330fce --- /dev/null +++ b/2.exs @@ -0,0 +1,28 @@ +{:ok, content} = File.read("input-2") +content = content +|> String.split("\n", trim: true) +|> Enum.map(fn n -> String.graphemes(n) end) + +count2 = 0 +count3 = 0 +for line <- content do + Enum.reduce(line, %{}, fn char, acc -> + Map.put(acc, char, (acc[char] || 0)+ 1) + end) + |> Map.values + |> Enum.filter(fn x -> x == 2 || x == 3 end) +# need to split and count occurance of 2 and 3 seperately + |> Enum.reduce(0, fn x, acc -> if x == 2 do acc + 1 end end) +end +|> IO.inspect + +IO.puts(count2) +IO.puts(count3) + +# File.stream!("input-2") +# |> Stream.map(&String.trim/1) +# |> Stream.map(fn n -> String.graphemes(n) end) +# |> Enum.reduce(%{}, fn char, acc -> +# Map.update(acc, char, 1, &(&1 + 1)) +# end) +# |> IO.puts diff --git a/input-2 b/input-2 new file mode 100644 index 0000000..1c7a75d --- /dev/null +++ b/input-2 @@ -0,0 +1,251 @@ +bqlpzruexkszyahnamgjdctvfs +bqlporuexkwyyahnbmgjdctvfb +bqlhoruexkwzyahefmgjdctvfs +bqlporuegkwzyahdimgodctvfs +bqlporuxxkwhybhnimgjdctvfs +dqlporuexkwzyahnimgjfcivfs +bqlporlexkwzyarniigjdctvfs +bqlporuezkqzeahnimgjdctvfs +bqlporuefkwzyamnsmgjdctvfs +bqlporuexkwzyahqimgjdazvfs +bqspocuexkwzyahnimgjdctffs +bqlporuexkwzywhnimgjiccvfs +bqlcoruexkwzyahnimgjdgtvfj +bqljoruexkwvyahnimgcdctvfs +bqeporuexkwzyahnionjdctvfs +bqlporuexkwzyabnxmgjqctvfs +bqjporuexkwzyahnimtddctvfs +bqlprruexkezyahbimgjdctvfs +bqlporuexkazyahnimgjjctefs +bqlioruexkweyjhnimgjdctvfs +bqlporuexsszymhnimgjdctvfs +bqlporffxkwzyahnimgjditvfs +bqlporuexkwzyahnimcedctvbs +bqwpgruexkezyahnimgjdctvfs +bqldoruexkwzyahnimgjdcpvfu +bqlpoxueckwzyahnemgjdctvfs +bqlhoruqxkwzyahnimgjdctsfs +wqlporuexkwzychfimgjdctvfs +bqlporuenkwzyahnimvqdctvfs +aqlppruexkwzyahnimgjdcrvfs +bqlporuexzwzfahnimgjdcivfs +bqjporuexkwzyahnimgjdcqmfs +bqppkkuexkwzyahnimgjdctvfs +bqlporuervwzyahnimgldctvfs +bqoporxeykwzyahnimgjdctvfs +bqyporuehkwzyahnilgjdctvfs +bqlporuexkwzybvnimgjdctvfv +bqlporzehkwzyaznimgjdctvfs +bqiporuexkjzyahnimgjdatvfs +yqlpkruexkwzyahnimggdctvfs +brlporuexkwzyehnimgjdctvbs +bqlporuyxkwzyahnapgjdctvfs +bqlporuexkwzyaewimgjdttvfs +bqlporueskwzyahnimpjdcdvfs +bqlioruexkwzyahnimghdcbvfs +bqljoruexkwzyahtimgjdctmfs +bqlporgexkwzyaxnimgjvctvfs +bqlporuexkwxyahnimgodftvfs +mqlporupxkwzyahnimgjdcqvfs +bgkporuexkwzychnimgjdctvfs +jqlporuexgwzyawnimgjdctvfs +bqlperuebkwzyahniwgjdctvfs +bqlporuexkwzyahnbmgjdntvts +bqlporuexkwzyajnimgldctvfz +bqlpobuexkwzychnimgjdctvfu +bquporuexkwzyahiimgjdctvfp +bnlporbexkwzyahnimgjdctvfb +bqlporuexklzyahnimgtdctbfs +bqlworuexkwzyahnimkjdcpvfs +bqlporumxkwzyahnikejdctvfs +bqlporuexkwryahnimfjdctnfs +bqlioruenkwzywhnimgjdctvfs +bqlporulxbwzyahnimgjdctvfe +bqeporufxkwzqahnimgjdctvfs +bqlpbwuexkwzyahnimgjdctvfo +bqlpoduexkwzyahnimgvdctvrs +bqlporuexkwzlahnimgjdctvdw +bqlporuexkwzyahnimujdctdfp +iqlporuexvwvyahnimgjdctvfs +bclporuexkwzyahnimgjdzovfs +bqlporuerktzyahnamgjdctvfs +bqlporuexkwziajnimgjdctvfe +bqlpnrkexkwoyahnimgjdctvfs +bqlporuexkwznacnimgjdctvks +bqlporuexkrzyrhnimgjdcuvfs +bqltoruexkwzyahnnmgjdcivfs +bqlporuexkwzuahnimdjdctmfs +bqlporubxkbzyahnimgjdctmfs +bqlplruexkwdyhhnimgjdctvfs +bylporuexknzyahnimgjdctmfs +bqlporuexkwzyahqitgjdctvas +bquperuexkwzyahnimgjdcdvfs +bqlporuexktzyahnisgjdctvls +bqlporuexkwfyacnimtjdctvfs +bqleoraexkwzyahnimgjoctvfs +bqlporuexkwlyahnimrjdctvas +bqlphruexkwzyadnimujdctvfs +oqadoruexkwzyahnimgjdctvfs +belpzruexkwzyahnimgjjctvfs +bqlporuexkwzkahtbmgjdctvfs +bqlporulctwzyahnimgjdctvfs +bklptrwexkwzyahnimgjdctvfs +bqlpoqhexkwzjahnimgjdctvfs +tqlporjexkwzyahnimgjdctvfx +bqipwruexkwzyahnimgjdctvfd +bqlparueeawzyahnimgjdctvfs +bqlsoruexkrzyahnqmgjdctvfs +bqlsoruexhwzwahnimgjdctvfs +bquporuexkwsyihnimgjdctvfs +bwlporuexkwzyahwimgjdcuvfs +bqgpobuexkczyahnimgjdctvfs +bqlporuexkwzyahntmgjdspvfs +bqlporuetkwzjavnimgjdctvfs +bqlpoluwxkwzyahnimgpdctvfs +bqlporueykwzuahnimgjuctvfs +bqqporuexkwzyranimgjdctvfs +bjlporuexkwzyahnjmgjdctvts +bjlpofuenkwzyahnimgjdctvfs +bqhporuexbwzyahnfmgjdctvfs +bqlpofulxkwzyfhnimgjdctvfs +bqlporuexrwzyahuimgjdcwvfs +bblporaexkwzyahnicgjdctvfs +uqlpoxuexkwzuahnimgjdctvfs +bqlporuexkwzylhnimgjjhtvfs +bqlloruexkhiyahnimgjdctvfs +bqlpopuexkwzyahnymojdctvfs +bqlporuexkwgyyhnimgjdstvfs +bqlroruexxwzyahnumgjdctvfs +balpopuexkwzeahnimgjdctvfs +bqlporuexkwzyahniogjdqtvfc +bqlpoiuexkwgynhnimgjdctvfs +bqlpoyueukwzyahnimgjdcwvfs +bqtporuexkwtyahnimgjdctvfl +bqlporzexkwzyahnsmgjdctxfs +bqlporukxkwhyahnimgddctvfs +bklporuevowzyahnimgjdctvfs +bqgporuexmwzyahnimgjdctsfs +bqlporuetkxzyahnimgjoctvfs +bqlpsrzexkwzyahnimcjdctvfs +bqlporuexkwzzahaimgkdctvfs +bqlporuexkwzyahnimgjdmtvwd +bqlporuexkwzywhlimgjhctvfs +bqlporuexkwuhahnimgjdctvns +bqqporuexkizyahnimgjdctcfs +bqlvoruepkbzyahnimgjdctvfs +bqlporuexkwqyahnimgjfctvbs +bqlporuexkwzyahlimghuctvfs +bqlporuexkwzyahnizgjictvfb +bqlporuvxkjzyahaimgjdctvfs +bqljoruexkwzyahnizgjdctqfs +bqlporuexkwyyahnimgjdztvfv +jqlporqexkwzyahvimgjdctvfs +bqlporueakwzyabnimgjdctxfs +bqlporuezewzyahnimgfdctvfs +bqlporuzxklzyahnwmgjdctvfs +zqlpproexkwzyahnimgjdctvfs +bqlporuefkwzyahnlmgjdgtvfs +bqlporoenkwzyahnkmgjdctvfs +bqwporuexkwzyahnimcjdctvfk +bqlporuexkwbyahaimgjdctvus +bqlporujxkwzyahnimgjfntvfs +bqlooruexkvzyahnimjjdctvfs +bqlpomuexowzyahnimgjcctvfs +bqlpoquexkwzvahnimgjdctvfl +bclpopuexowzyahnimgjdctvfs +bqlporuexcwzyahnimgjdctlfb +bqlporgexkwzyalnimgjdctvfq +bqppiruexkwzyyhnimgjdctvfs +bqlporaexkwnmahnimgjdctvfs +bqhporuexkwzyahlomgjdctvfs +bqlloruexkwzuahnimgjdctvfb +bqhporuexkwzyahnemgjdcovfs +bqlpiruexkwdyahwimgjdctvfs +bqlporuexkwryahnimgjtdtvfs +bqeporuexkwzyahgixgjdctvfs +bqlporuexkwyqahnimgfdctvfs +bqlporuexkwzyaoniggydctvfs +bqlpouuexkazyahnimgxdctvfs +brlporuexkwzyahvimgjdctvps +bqlforuexkwzyrhnitgjdctvfs +bqlpiruexkwzyfhnjmgjdctvfs +bqlpoebexkwzyxhnimgjdctvfs +bblporoezkwzyahnimgjdctvfs +bglporuexkwzyajqimgjdctvfs +bqlpxcuixkwzyahnimgjdctvfs +bqlporuaekwzyahniegjdctvfs +hqvporuexkwzyahnimgjectvfs +qllporuexkwzyahnimgjdctvhs +bqlporaexkpzyahnlmgjdctvfs +bqlporuexkwzyabnzmgjqctvfs +bqlporuexbvzyahnimgjdctrfs +bqdzoruetkwzyahnimgjdctvfs +bslporuexkwzyahnimgjdctdos +bqlporfexkwzylwnimgjdctvfs +bqrporueykwzyavnimgjdctvfs +bqlporuexkweythnomgjdctvfs +bqlpozuepkwzyahnimgjdctdfs +bqoporuexqhzyahnimgjdctvfs +bqlporucxkwzyahnimtjdctifs +bqlpobuexawzyahnimgjdcthfs +dklporuexkwzyahnimhjdctvfs +bclpkquexkwzyahnimgjdctvfs +bqlporuexkwzyafnfmljdctvfs +bqlporuexkwzympnimgjsctvfs +bqlporuexkwzyaonimdjactvfs +bqlporuvxkwzywhnimgjdctvks +bqlporuexkwzgahnimbjdctvfn +bqlqoruexvwzqahnimgjdctvfs +bqlporuexkmkyahniggjdctvfs +bqlneruexkwzyjhnimgjdctvfs +bqlporueqkwzyahnbmgjdctvfl +bqlpgruexkwzyahnimjvdctvfs +nqlpsruevkwzyahnimgjdctvfs +bqhpouuexkwzyahnmmgjdctvfs +bqnporuexkwzyahnimojdctqfs +bqlpordexkwztahnimgjdctvds +eqlporufxkwzyahniigjdctvfs +balporuebkwzyahnimgjdctvfv +bqlprruexrwzwahnimgjdctvfs +bqlporuepkwxyahnimggdctvfs +bqlporfexkwzyahnqjgjdctvfs +bqaporuexvwzyahnimgjdctvfy +bqlporuexkwzyawnibgjdctmfs +eqlhoruexkwzyahiimgjdctvfs +bqlporuexkbzyahnimgsdhtvfs +bqlporhexkfzyahnimgjdcgvfs +bqeporuexkxzyahnimgjdcavfs +bqlporoerkwzyahnimgjdctnfs +bqlporuemkwzyshnimgjdatvfs +bilporuexkwyyahnimgvdctvfs +xqlporuexkwzyahnnmgjdctvfl +bqlborumxkwzsahnimgjdctvfs +bqlporsexcwzvahnimgjdctvfs +bqlporxexkwzyapnimgbdctvfs +bqlpmruexkwzyahnimgbdcpvfs +qqlroruexkwzyahnihgjdctvfs +bqnporuexkbzyaknimgjdctvfs +bqxpoeuexcwzyahnimgjdctvfs +bqlporuexkqzyahnidgjdcivfs +zqkmoruexkwzyahnimgjdctvfs +bqlporuexkwzyahzimgjqjtvfs +bqfporuenkwzyahiimgjdctvfs +bqlporuexkwzyahuimszdctvfs +bklporurmkwzyahnimgjdctvfs +bqlpotuexktzyahnimgjdcfvfs +bqlporuexkwxyahnimgxdltvfs +bqmporuexkwzoahnimgjdctvys +bqlporuexvwzyahnimgjdnnvfs +bqzporuexkwzyahnkmgjdctsfs +bqmporuexkwzyahnihgjdctvfq +bqlporuexkwzyavnimgjdcrvos +bklpopuexkwzyahnimgjdctvfb +bvlcoruexkwzyapnimgjdctvfs +bqlboruexzwcyahnimgjdctvfs +bqlporuexdwzyihnimgydctvfs +bqlpovuexkwzyaynimgjdctvfq +bqlarruebkwzyahnimgjdctvfs +fqlporuexkwzfahnimgjdctsfs +bqlporuexowzyahnjmgjdctdfs +bqlporuexkwzyahnrmkjdctyfs +