Added day 6, fixed new issue with Enviroment.NewLine

This commit is contained in:
Rob Stoffelen 2022-12-06 08:53:37 +01:00
parent e052f574b3
commit cbd44b768f
9 changed files with 61 additions and 17 deletions

View File

@ -8,7 +8,7 @@ string _demoData = @"2-4,6-8
6-6,4-6 6-6,4-6
2-6,4-8"; 2-6,4-8";
Answerable answerable = new Day05Part2(); Answerable answerable = new Day01Part1();
byte[] dataArray = File.ReadAllBytes(answerable.DefaultInputFile); byte[] dataArray = File.ReadAllBytes(answerable.DefaultInputFile);
//dataArray = Encoding.UTF8.GetBytes(_demoData); //dataArray = Encoding.UTF8.GetBytes(_demoData);

View File

@ -11,8 +11,8 @@
public override string GetAwner(byte[] data) public override string GetAwner(byte[] data)
{ {
return GetAsString(data).TrimEnd() return GetAsString(data).TrimEnd()
.Split(Environment.NewLine + Environment.NewLine) .Split(NewLine + NewLine)
.Select(s => s.Split(Environment.NewLine) .Select(s => s.Split(NewLine)
.Sum(Convert.ToInt32)) .Sum(Convert.ToInt32))
.MaxBy(v => v) .MaxBy(v => v)
.ToString(); .ToString();

View File

@ -12,8 +12,8 @@
{ {
return GetAsString(data).TrimEnd() return GetAsString(data).TrimEnd()
.TrimEnd() .TrimEnd()
.Split(Environment.NewLine + Environment.NewLine) .Split(NewLine + NewLine)
.Select(s => s.Split(Environment.NewLine) .Select(s => s.Split(NewLine)
.Sum(Convert.ToInt32)) .Sum(Convert.ToInt32))
.OrderByDescending(v => v) .OrderByDescending(v => v)
.Take(3) .Take(3)

View File

@ -11,10 +11,10 @@
public override string GetAwner(byte[] data) public override string GetAwner(byte[] data)
{ {
string[] initAndInstructions = GetAsString(data).Split(Environment.NewLine + Environment.NewLine); string[] initAndInstructions = GetAsString(data).Split(NewLine + NewLine);
CraneWork work = new CraneWork(); CraneWork work = new CraneWork();
work.ReadInitialContainerArrangement(initAndInstructions[0].Split(Environment.NewLine)); work.ReadInitialContainerArrangement(initAndInstructions[0].Split(NewLine));
foreach (string instruction in initAndInstructions[1].Split(Environment.NewLine)) foreach (string instruction in initAndInstructions[1].Split(NewLine))
{ {
work.DoCraneWork(instruction); work.DoCraneWork(instruction);
} }

View File

@ -11,10 +11,10 @@
public override string GetAwner(byte[] data) public override string GetAwner(byte[] data)
{ {
string[] initAndInstructions = GetAsString(data).Split(Environment.NewLine + Environment.NewLine); string[] initAndInstructions = GetAsString(data).Split(NewLine + NewLine);
CraneWork work = new CraneWork(); CraneWork work = new CraneWork();
work.ReadInitialContainerArrangement(initAndInstructions[0].Split(Environment.NewLine)); work.ReadInitialContainerArrangement(initAndInstructions[0].Split(NewLine));
foreach (string instruction in initAndInstructions[1].Split(Environment.NewLine)) foreach (string instruction in initAndInstructions[1].Split(NewLine))
{ {
work.DoCraneWork(instruction, false); work.DoCraneWork(instruction, false);
} }

View File

@ -0,0 +1,23 @@
namespace AdventOfCodeLibrary._2022
{
using AdventOfCodeLibrary.Shared;
public class Day06Part1 : Answerable
{
public override int Year { get; set; } = 2022;
public override int Day { get; set; } = 6;
public override int Part { get; set; } = 1;
public override string GetAwner(byte[] data)
{
int markerLength = 4;
for (int skip = 0; skip < data.Length - 1 - markerLength; skip++)
{
if (data.Skip(skip).Take(markerLength).Distinct().Count() == markerLength)
return (skip + markerLength).ToString();
}
return "nothing found";
}
}
}

View File

@ -0,0 +1,23 @@
namespace AdventOfCodeLibrary._2022
{
using AdventOfCodeLibrary.Shared;
public class Day06Part2 : Answerable
{
public override int Year { get; set; } = 2022;
public override int Day { get; set; } = 6;
public override int Part { get; set; } = 2;
public override string GetAwner(byte[] data)
{
int markerLength = 14;
for (int skip = 0; skip < data.Length - 1 - markerLength; skip++)
{
if (data.Skip(skip).Take(markerLength).Distinct().Count() == markerLength)
return (skip + markerLength).ToString();
}
return "nothing found";
}
}
}

View File

@ -0,0 +1 @@
qhbhzbzzfrzrbzzcjzjrrvcvrvqvvnggnngcgssswbblplrlflfnnnmmjppgddqndnrnlnccpfcfjcjvjdjqqqmhhmwhwmmsnsvsjvjnvjnvjvsjsmjsjccwcqwcqwqjqwjwmwbmmbzbsbvsslbsbbbntnvvphpqqvrrtbrtrfftppbggpzzfhfcfsfmssffmbmzzmqzzblzzzmwwnggjwgjwgjgpgmmjvvmcvmmcfchfhllwmlljqqldqdqttsgsvscsmsnsmstmtssvgsgddwdffbppwfpplhlchhhdvvdrrmttmptmmmjsmshmmmgqmgggzjgzzmwzwcwhchqqfpfvvbqvbqbrblrrmtmstmmjvmmdnmmzczdzpztppjhjjwzjjjtdjjpljpjcppjllsffhbffbhhgttqjqzzfzbzcbzcbcrrjjrwrgwwbcbpcccctrtqtfqqfjjpgpdgdfgfrggpjjljglgclcqcqmcqmmgjjllpmphpjjgfjjqrrbppwmpmccftctjtjgjtgggzffcggwzzzdjdzzlgzgjzzvqvppczzjnjvvfhhtwtttdwtdtvddpzpnpcnppmvmcmcsmstthctchcggtssdttvztvvldlfftqqbzzjttvzztppscctzccgmcmvmhhchcscbbshbssgwwthwhmwwcgwcwrrvrzvrzzzvhvdvmmprrdmrmfmrmbmjbbmqbmbqqhbbszsjjlqjljtjstshhgphpffdhhtggtgbbqcqgqccfffcpcbpbfppwqpqcclbbwdwsscpchhfpfmpfmflfnnmggwrrznnghgvhhghrrhwrrcschcscqcmcfcvvgzztjtqjjshspsqsmmjnnmttsshvhmmqfqzztbzttvhttmwttnqnfncfcpfflmllmtlmmphmhlmmltmtztcczhzbbfmmlglnnfpppqplljwjfwfdwdzwddszddqzqnzzzwwlzzqvvjlllrwlrrmpmrmbmpplpspqsqmqcmcjjshsvstvvwtvthvvrfvvqmmjpmjmrjmmlvvnnrjjrcrwrhwwqzzvgvngncgcqqcffmfzfssbnbfblbggwhggmtgtvvqhhpttbcbczcjjbqbhqbhqbbccbhbqhbbmppdlpdllbvvdpvdvwvsvppllgblbttmcmtccbsswmswwwzfwfhhtfhthctchcfhhhfjjvhjhgjjjcwjwggrtgrttcqcwcswccfdffvpvtptprrvjjqvjjghggshhwmmcscmsmhmvmppprfrwwrhhvghhtnhncctbbbwzzbgzgdzgdzdpdvpvbbwgbwwrqwrqwqbqvvclccfcfzfdfrrthrrqcqddplpqlppbbfrfmmrmnnwhhgddmwwrzrsswpwhwdwhhsmhshqsqllbvlbllwbwbpwwfwmwsmspsvsdsbscctpctppvvpggtjjdmdqqgqbgglccvzcvcnczcgzgmzznpzzpcpnpvpcvvffrttqrqttflfbfjfnnwnlwlhwwqzqnqfftstdsttglldwwgqwwvqqzczfzdffbfsfssfwswdwnwdnnbcncwctttvsvjsvsrvvbtvvzhhvjvtvtjtsjjvhjjwpjjnzzpczzppgcpgcpgcgsgvsgvsscrcpcpspllzvzddpssssdpsddhffllzmzhzfhhdvhhvbvwwpwqpwqpwwmvwmvwvgvmvpvmpmrmzrrblltjtggvnggvppthhzjhzhffrvrhvrhrlrslsflfhhtvhvmmhppjgpjpcccmqcqvqhvvfssrtmnwjjslwhjgpvrwspjlwdwrmvfgwmplrmjrllndrjzvjfbwvzpjpfqrnjspwcpsgcvdlmfdfrvwdcvmbrnzncgnqlcvgqtpsbbpvprncdsgvpqbpcnffwqmmfsvnzspchhrlnzbhcdfdgtsllmqfbrcqwbmmzrfvsghjpmrndsdbqvtprmblnbvbnpvhtphbpjwdssvwgdzwztbpzdcsqzldjzrgcwhhspblrtncvntppcgttlflflnntcnzpbpgsclcjvbjhldcdzwjjhnfwzjmgcwtljhvbncwqnjhbrhfqcmnsdvntsbgnpqttzvbhzzpdznrhjpnsqzsztsblstbghlpwbmqjctlnqnttwshfvmjdhgbgjdhbzrfjqndrrhlqcmplczjtwpstlsmwwzqzmgvhsvjgbrtfwmvwlbhpccbqvmfmlgmbmbmldbcwmmhpnnbnffbnqgwhclgpzgbpjqvzmqhhhpltnwrdfrrnmlfrzflpnjztlnfzzzgmncprtblpsvrqgrnzbzfzhzhjjjdrnpvjpnwmlmlgvvtqmdvpnhvcrdmthcnnnvhnzmvgrtdvcthgjtvcgmtpsvmfztrflrrzbmcfhftwwcnjfpjtsnzjccmvdnrrwvbfjgcjttdvzncqhlqqphwphclztbhlqcfmnhcjmsscplnrsjqpdzrrzbthbcdnrzgdmstpgqqsvzclvmzjjdfqhhhttwcjtmwcbltghmslqvltqbjqqjpjvgntvnlttjcnhltflglgsmjwjjfldpfgjgrhttbwfhpsdbsmsfmfbtjlnhvjfqjrqhwdrcwpfthdgqzjjjfcvgdffrhvvwzfghpszmjjgscjvjnlgnbfbgfrbbzbzbnzngthrddfmsgsqqdddpfqwlchfblrvjdcgnzfzwmmnmvnzmpfmhbbhsbfdfclzcnbrlgpbsvfgfpshrpvpgccmmghphrcvzwnlqjcfwrtwvlvcsdldldvnpwgrcsqlftllcctnvcwbdswvqlzwzzbpmvvctcrgnjfstbqvnzczrjlljfqzrwtfwmlvvdfbfntrrljtbrtbdfsqpnppfbppbsmghbnqddhrvwmgzttnqjrqlfrdhqjndmnjlbctgclltmznmrqtfjsjwnztdvhnhlfwpnnqlhhsrfzglsnrdnfvrqssbtlthzfnjdvrcgzsbnpdgqhhrlwspfqfqpvzdfwgrlhwplzvbzprsqzcwvhggvzpgjztnvwvddsflgsvqljmmhhdzqsqmthwzvllqwmsnvdpdbjcgdtrsnmwhnzhbhgjssstmhrpssnhnntmrbbbjgmjqtncbdljcgtmbctpgdrnqcnrpssrdtpbsmlzlcztbrggglswnjzqgbsmgbqdzppqrwgtnlrjrvlpnqlcdwhltzzlqdwwrglldzcqrjtjtlgdqrtwzjgtdthsdccsmsrbjjsgdqcwdltvnjwtddsnpnsvzcdbfqnvsjbngqrztmbrnbvhhjzdtqrgldpvjqjpnshbjdsdgbjdjzdmrvzhwmtgcjrfnprstqgfgnwfpcjzhlnwpdbtqbspssqdrzhmmsrqtlwngvbrvgdgztnrlwcnqwvcdmhhdrmpfqbgbjpvzwbsbgcpsnpjplcrjdhflqvsdctclqqnmprngtvbmlmpqrsqdsrzgsmzmsczpsnmfmtfnjvnddjhqbjdvtgftjfvjhgpjqdhlszqjmcbnwrppzwjvmgblspjmfhjdbnmrllnfqlpcbndvqdzhhmmrpsljgdshpnrgnmwfjsdncqcwlctccrqghfdbsqqbnwctcqpvlrqqqvdjwlcnzmvdmcvlwnftjnqqldfwhmdtcpnlgfcdjdrfvmwqdzsjzctmmmrswhlwthttvcsqqscdcsmjgqfjhswlpsfjrppdmbwrthcwszqwwgnjsdqdrswmnzbrvqcwlrlwwvjmrrhsnzprggbzhhdqwvnspsmzzqdtbphzvwrzvqnbntjndrwllzwchczdwvnfjjdwfhdlgncftldzwdtjzjrmnfwwgmqdrltmgrfsjztfcvwjsggtvbnsvthflwfdtljrgqhmfqhmhfffqhtgwtlmwgzsglqnfwnrnvgvbdgqjrqtsmgsmzdpffnnzwlpbqphqmgdzspfrdqlptwmfwlgnqqdhtbbjtfhllrhhdcszjtmrprzhzzlgjqbcnhzcmhzrsnmmrzztffrldthhfvwhgjhwmjfbdvnllfmlpdsldjnpcwlpbwqzdwbgjb

View File

@ -10,12 +10,9 @@ namespace AdventOfCodeLibrary.Shared
public abstract int Part { get; set; } public abstract int Part { get; set; }
public string DefaultInputFile { public string DefaultInputFile => $"../../../../Advent Of Code Library/{Year}/Day {Day:00}/day-{Day:00}-input.txt";
get
{ protected string NewLine => "\n";
return $"../../../../Advent Of Code Library/{Year}/Day {Day:00}/day-{Day:00}-input.txt";
}
}
public abstract string GetAwner(byte[] data); public abstract string GetAwner(byte[] data);