Skip to content

Instantly share code, notes, and snippets.

@nickforce
Created December 2, 2023 21:20
Show Gist options
  • Save nickforce/81e5b2458574d406a3b12fb3595453b5 to your computer and use it in GitHub Desktop.
Save nickforce/81e5b2458574d406a3b12fb3595453b5 to your computer and use it in GitHub Desktop.
day02-part1
public with sharing class day02 {
public static Map<String, Integer> maxTurnCubes = new Map<String, Integer>{
'red' => 12,
'green' => 13,
'blue' => 14
};
public static Integer part1(List<String> puzzleInputLines) {
Integer total = 0;
Set<Integer> validGameNumbers = new Set<Integer>();
for(String line : puzzleInputLines) {
Integer gameNumber = Integer.valueOf(line.substring(line.indexOf(' ') + 1, line.indexOf(':')));
validGameNumbers.add(gameNumber);
String gameRounds = line.substring(line.indexOf(':') + 1, line.length());
for(String round : gameRounds.split(';')) {
for(String score : round.split(',')) {
String numberColor = score.trim();
String cubeNumber = numberColor.substring(0,numberColor.indexOf(' '));
String cubeColor = numberColor.substring(numberColor.indexOf(' ') + 1, numberColor.length());
if(maxTurnCubes.get(cubeColor) < Integer.valueOf(cubeNumber)) {
validGameNumbers.remove(gameNumber);
}
}
}
}
return sumValidGameNumbers(validGameNumbers);
}
private static Integer sumValidGameNumbers(Set<Integer> validGameNumbers) {
Integer sum = 0;
for(Integer val : validGameNumbers) {
sum += val;
}
return sum;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment