public long ExecutePartOne(string inputFile, int index = 25) { var input = ArraysAndLists.StringArrayToLongArray(General.GetDataFromInputFileAsStringArray(inputFile)); var currentIndex = index; // skip first long checkingNumber; foreach (var line in input.Skip(index)) { var foundSum = false; checkingNumber = line; var preamble = input.Skip(currentIndex - index).Take(index); foreach (var calc in preamble.Distinct()) { var lookForNumber = checkingNumber - calc; if (preamble.Any(x => x == lookForNumber)) { foundSum = true; break; } ; } if (!foundSum) { return(checkingNumber); } currentIndex++; } return(0); }
public void ReverseString_ReverseGivenString_ReturnReversedString() { var reverse = new ArraysAndLists(); var result = reverse.ReverseString("Pomarancza"); Assert.That(result, Does.Contain("azcnaramoP")); }
public long ExecutePartTwo(string inputFile, int index = 25) { var input = ArraysAndLists.StringArrayToLongArray(General.GetDataFromInputFileAsStringArray(inputFile)); var lookForNumber = ExecutePartOne(inputFile, index); var validNumbers = input.Where(x => x < lookForNumber).Reverse(); for (int from = 0; from < validNumbers.Count(); from++) { var numberOfRecords = 1; var list = validNumbers.Skip(from); do { var sum = list.Take(numberOfRecords).Sum(); if (sum == lookForNumber) { return(list.Take(numberOfRecords).Min() + list.Take(numberOfRecords).Max()); } else if (sum > lookForNumber) { break; } numberOfRecords++; }while (numberOfRecords + from < validNumbers.Count()); } return(0); }
public void SixThFacebook_WhenNoOneLikePost_ReturnsNothing() { List <string> list = new List <string>(); var facebook = new ArraysAndLists(); var result = facebook.Facebook(list); Assert.That(result, Does.Contain("")); }
public void SixThFacebook_WhenTwoAndMoreFriendLikePost_ReturnNamesNumOfOthersLikeYourPost() { List <string> list = new List <string> { "Tom", "Jerry", "Ben", "Kate" }; var facebook = new ArraysAndLists(); var result = facebook.Facebook(list); Assert.That(result, Does.Contain(String.Format("{0}, {1} and {2} others like your post.", list[0], list[1], list.Count - 2))); }
public void SixThFacebook_WhenOnlyTwoFriendLikePost_ReturnNamesLikeYourPost() { List <string> list = new List <string> { "Tom", "Jerry" }; var facebook = new ArraysAndLists(); var result = facebook.Facebook(list); Assert.That(result, Does.Contain(String.Format("{0} and {1} like your post.", list[0], list[1]))); }
public void SixThFacebook_WhenOnlyOneFriendLikePost_ReturnNameLikesYourPost() { List <string> list = new List <string> { "Tom" }; var facebook = new ArraysAndLists(); var result = facebook.Facebook(list); Assert.That(result, Does.Contain(String.Format("{0} likes your post.", list[0]))); }
public static int ExecutePartTwo(string inputFile) { var input = Helpers.General.GetDataFromInputFileAsStringArray(inputFile); var array = ArraysAndLists.StringArrayToIntArray(input); foreach (int current in array) { var smallerList = array.Where(x => x <= 2020 - current).Select(x => x); foreach (int i in smallerList) { var smallestList = array.Where(x => x <= 2020 - current - i).Select(x => x); foreach (int j in smallestList) { if (current + i + j == 2020) { return(current * i * j); } } } } return(0); }