Completed 2015 day 5
This commit is contained in:
68
2015/Day-05/Day05.cs
Normal file
68
2015/Day-05/Day05.cs
Normal file
@@ -0,0 +1,68 @@
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
List<char> vowels = new List<char>{'a','e','i','o','u'};
|
||||
List<string> badStrings = new List<string>{"ab", "cd", "pq", "xy"};
|
||||
int goodStrings = 0;
|
||||
|
||||
foreach(string line in File.ReadLines("input.txt")){
|
||||
int vowelsInLine = 0;
|
||||
foreach(char letter in line){
|
||||
if(vowels.IndexOf(letter) != -1){
|
||||
vowelsInLine++;
|
||||
}
|
||||
}
|
||||
if(vowelsInLine < 3){
|
||||
continue;
|
||||
}
|
||||
|
||||
int repeatedLetters = 0;
|
||||
for(int i = 1; i < line.Count(); i++){
|
||||
if(line[i-1] == line[i]){
|
||||
repeatedLetters++;
|
||||
}
|
||||
}
|
||||
if(repeatedLetters < 1){
|
||||
continue;
|
||||
}
|
||||
|
||||
int containsBadStrings = 0;
|
||||
foreach(string badString in badStrings){
|
||||
if(line.Contains(badString)){
|
||||
containsBadStrings++;
|
||||
}
|
||||
}
|
||||
if(containsBadStrings > 0){
|
||||
continue;
|
||||
}
|
||||
|
||||
goodStrings++;
|
||||
}
|
||||
Console.WriteLine("Part 1: " + goodStrings);
|
||||
|
||||
goodStrings = 0;
|
||||
foreach(string line in File.ReadLines("input.txt")){
|
||||
int repeatedPairs = 0;
|
||||
for(int i = 1; i < line.Count(); i++){
|
||||
string currentPair = (line[i-1].ToString() + line[i].ToString());
|
||||
int numMatches = Regex.Matches(line, currentPair).Count();
|
||||
if(numMatches > 1){
|
||||
repeatedPairs++;
|
||||
}
|
||||
}
|
||||
if(repeatedPairs<1){
|
||||
continue;
|
||||
}
|
||||
int repeatedLettersPart2 = 0;
|
||||
for(int i = 0; i < line.Count()-2; i++){
|
||||
if(line[i+2] == line[i]){
|
||||
repeatedLettersPart2++;
|
||||
}
|
||||
}
|
||||
if(repeatedLettersPart2 < 1){
|
||||
continue;
|
||||
}
|
||||
|
||||
goodStrings++;
|
||||
|
||||
}
|
||||
Console.WriteLine("Part 2: " + goodStrings);
|
Reference in New Issue
Block a user