Added day 6, fixed new issue with Enviroment.NewLine
This commit is contained in:
parent
e052f574b3
commit
cbd44b768f
@ -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);
|
||||||
|
|
||||||
|
|||||||
@ -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();
|
||||||
|
|||||||
@ -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)
|
||||||
|
|||||||
@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
23
Advent Of Code Library/2022/Day 06/Day06Part1.cs
Normal file
23
Advent Of Code Library/2022/Day 06/Day06Part1.cs
Normal 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";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
23
Advent Of Code Library/2022/Day 06/Day06Part2.cs
Normal file
23
Advent Of Code Library/2022/Day 06/Day06Part2.cs
Normal 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";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
1
Advent Of Code Library/2022/Day 06/day-06-input.txt
Normal file
1
Advent Of Code Library/2022/Day 06/day-06-input.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
qhbhzbzzfrzrbzzcjzjrrvcvrvqvvnggnngcgssswbblplrlflfnnnmmjppgddqndnrnlnccpfcfjcjvjdjqqqmhhmwhwmmsnsvsjvjnvjnvjvsjsmjsjccwcqwcqwqjqwjwmwbmmbzbsbvsslbsbbbntnvvphpqqvrrtbrtrfftppbggpzzfhfcfsfmssffmbmzzmqzzblzzzmwwnggjwgjwgjgpgmmjvvmcvmmcfchfhllwmlljqqldqdqttsgsvscsmsnsmstmtssvgsgddwdffbppwfpplhlchhhdvvdrrmttmptmmmjsmshmmmgqmgggzjgzzmwzwcwhchqqfpfvvbqvbqbrblrrmtmstmmjvmmdnmmzczdzpztppjhjjwzjjjtdjjpljpjcppjllsffhbffbhhgttqjqzzfzbzcbzcbcrrjjrwrgwwbcbpcccctrtqtfqqfjjpgpdgdfgfrggpjjljglgclcqcqmcqmmgjjllpmphpjjgfjjqrrbppwmpmccftctjtjgjtgggzffcggwzzzdjdzzlgzgjzzvqvppczzjnjvvfhhtwtttdwtdtvddpzpnpcnppmvmcmcsmstthctchcggtssdttvztvvldlfftqqbzzjttvzztppscctzccgmcmvmhhchcscbbshbssgwwthwhmwwcgwcwrrvrzvrzzzvhvdvmmprrdmrmfmrmbmjbbmqbmbqqhbbszsjjlqjljtjstshhgphpffdhhtggtgbbqcqgqccfffcpcbpbfppwqpqcclbbwdwsscpchhfpfmpfmflfnnmggwrrznnghgvhhghrrhwrrcschcscqcmcfcvvgzztjtqjjshspsqsmmjnnmttsshvhmmqfqzztbzttvhttmwttnqnfncfcpfflmllmtlmmphmhlmmltmtztcczhzbbfmmlglnnfpppqplljwjfwfdwdzwddszddqzqnzzzwwlzzqvvjlllrwlrrmpmrmbmpplpspqsqmqcmcjjshsvstvvwtvthvvrfvvqmmjpmjmrjmmlvvnnrjjrcrwrhwwqzzvgvngncgcqqcffmfzfssbnbfblbggwhggmtgtvvqhhpttbcbczcjjbqbhqbhqbbccbhbqhbbmppdlpdllbvvdpvdvwvsvppllgblbttmcmtccbsswmswwwzfwfhhtfhthctchcfhhhfjjvhjhgjjjcwjwggrtgrttcqcwcswccfdffvpvtptprrvjjqvjjghggshhwmmcscmsmhmvmppprfrwwrhhvghhtnhncctbbbwzzbgzgdzgdzdpdvpvbbwgbwwrqwrqwqbqvvclccfcfzfdfrrthrrqcqddplpqlppbbfrfmmrmnnwhhgddmwwrzrsswpwhwdwhhsmhshqsqllbvlbllwbwbpwwfwmwsmspsvsdsbscctpctppvvpggtjjdmdqqgqbgglccvzcvcnczcgzgmzznpzzpcpnpvpcvvffrttqrqttflfbfjfnnwnlwlhwwqzqnqfftstdsttglldwwgqwwvqqzczfzdffbfsfssfwswdwnwdnnbcncwctttvsvjsvsrvvbtvvzhhvjvtvtjtsjjvhjjwpjjnzzpczzppgcpgcpgcgsgvsgvsscrcpcpspllzvzddpssssdpsddhffllzmzhzfhhdvhhvbvwwpwqpwqpwwmvwmvwvgvmvpvmpmrmzrrblltjtggvnggvppthhzjhzhffrvrhvrhrlrslsflfhhtvhvmmhppjgpjpcccmqcqvqhvvfssrtmnwjjslwhjgpvrwspjlwdwrmvfgwmplrmjrllndrjzvjfbwvzpjpfqrnjspwcpsgcvdlmfdfrvwdcvmbrnzncgnqlcvgqtpsbbpvprncdsgvpqbpcnffwqmmfsvnzspchhrlnzbhcdfdgtsllmqfbrcqwbmmzrfvsghjpmrndsdbqvtprmblnbvbnpvhtphbpjwdssvwgdzwztbpzdcsqzldjzrgcwhhspblrtncvntppcgttlflflnntcnzpbpgsclcjvbjhldcdzwjjhnfwzjmgcwtljhvbncwqnjhbrhfqcmnsdvntsbgnpqttzvbhzzpdznrhjpnsqzsztsblstbghlpwbmqjctlnqnttwshfvmjdhgbgjdhbzrfjqndrrhlqcmplczjtwpstlsmwwzqzmgvhsvjgbrtfwmvwlbhpccbqvmfmlgmbmbmldbcwmmhpnnbnffbnqgwhclgpzgbpjqvzmqhhhpltnwrdfrrnmlfrzflpnjztlnfzzzgmncprtblpsvrqgrnzbzfzhzhjjjdrnpvjpnwmlmlgvvtqmdvpnhvcrdmthcnnnvhnzmvgrtdvcthgjtvcgmtpsvmfztrflrrzbmcfhftwwcnjfpjtsnzjccmvdnrrwvbfjgcjttdvzncqhlqqphwphclztbhlqcfmnhcjmsscplnrsjqpdzrrzbthbcdnrzgdmstpgqqsvzclvmzjjdfqhhhttwcjtmwcbltghmslqvltqbjqqjpjvgntvnlttjcnhltflglgsmjwjjfldpfgjgrhttbwfhpsdbsmsfmfbtjlnhvjfqjrqhwdrcwpfthdgqzjjjfcvgdffrhvvwzfghpszmjjgscjvjnlgnbfbgfrbbzbzbnzngthrddfmsgsqqdddpfqwlchfblrvjdcgnzfzwmmnmvnzmpfmhbbhsbfdfclzcnbrlgpbsvfgfpshrpvpgccmmghphrcvzwnlqjcfwrtwvlvcsdldldvnpwgrcsqlftllcctnvcwbdswvqlzwzzbpmvvctcrgnjfstbqvnzczrjlljfqzrwtfwmlvvdfbfntrrljtbrtbdfsqpnppfbppbsmghbnqddhrvwmgzttnqjrqlfrdhqjndmnjlbctgclltmznmrqtfjsjwnztdvhnhlfwpnnqlhhsrfzglsnrdnfvrqssbtlthzfnjdvrcgzsbnpdgqhhrlwspfqfqpvzdfwgrlhwplzvbzprsqzcwvhggvzpgjztnvwvddsflgsvqljmmhhdzqsqmthwzvllqwmsnvdpdbjcgdtrsnmwhnzhbhgjssstmhrpssnhnntmrbbbjgmjqtncbdljcgtmbctpgdrnqcnrpssrdtpbsmlzlcztbrggglswnjzqgbsmgbqdzppqrwgtnlrjrvlpnqlcdwhltzzlqdwwrglldzcqrjtjtlgdqrtwzjgtdthsdccsmsrbjjsgdqcwdltvnjwtddsnpnsvzcdbfqnvsjbngqrztmbrnbvhhjzdtqrgldpvjqjpnshbjdsdgbjdjzdmrvzhwmtgcjrfnprstqgfgnwfpcjzhlnwpdbtqbspssqdrzhmmsrqtlwngvbrvgdgztnrlwcnqwvcdmhhdrmpfqbgbjpvzwbsbgcpsnpjplcrjdhflqvsdctclqqnmprngtvbmlmpqrsqdsrzgsmzmsczpsnmfmtfnjvnddjhqbjdvtgftjfvjhgpjqdhlszqjmcbnwrppzwjvmgblspjmfhjdbnmrllnfqlpcbndvqdzhhmmrpsljgdshpnrgnmwfjsdncqcwlctccrqghfdbsqqbnwctcqpvlrqqqvdjwlcnzmvdmcvlwnftjnqqldfwhmdtcpnlgfcdjdrfvmwqdzsjzctmmmrswhlwthttvcsqqscdcsmjgqfjhswlpsfjrppdmbwrthcwszqwwgnjsdqdrswmnzbrvqcwlrlwwvjmrrhsnzprggbzhhdqwvnspsmzzqdtbphzvwrzvqnbntjndrwllzwchczdwvnfjjdwfhdlgncftldzwdtjzjrmnfwwgmqdrltmgrfsjztfcvwjsggtvbnsvthflwfdtljrgqhmfqhmhfffqhtgwtlmwgzsglqnfwnrnvgvbdgqjrqtsmgsmzdpffnnzwlpbqphqmgdzspfrdqlptwmfwlgnqqdhtbbjtfhllrhhdcszjtmrprzhzzlgjqbcnhzcmhzrsnmmrzztffrldthhfvwhgjhwmjfbdvnllfmlpdsldjnpcwlpbwqzdwbgjb
|
||||||
@ -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);
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user