Compare commits

..

No commits in common. "00815609cb37ea1b074b9b924401827189fdd91a" and "d2ce81647b53cbeeec2595f9b6c9a672371c3f7f" have entirely different histories.

View File

@ -26,12 +26,6 @@ type possibleGame struct {
blueIsPossible bool
}
type minimumSet struct {
red int
green int
blue int
}
func splitSets (s string) ([]string, int) {
// Every set is divided by ;
sets := strings.SplitN(s, ";", -1)
@ -68,24 +62,13 @@ func CheckGame(mySet map[string]int, p *possibleGame) {
}
}
func findMinimumSet(mySet map[string]int, m *minimumSet) {
if (mySet["red"] > m.red) {
m.red = mySet["red"]
}
if (mySet["green"] > m.green) {
m.green = mySet["green"]
}
if (mySet["blue"] > m.blue) {
m.blue = mySet["blue"]
}
}
func PossibleGamesSum(s string, gn int, gt *int) {
var isPossible possibleGame
// Initialize everything to true. If everything was set to false,
// we would have to check in both directions for every pass
isPossible := possibleGame{redIsPossible: true,
greenIsPossible: true,
blueIsPossible: true}
isPossible.redIsPossible = true
isPossible.greenIsPossible = true
isPossible.blueIsPossible = true
// We will pass a pointer so we can go one map at a time and
// still maintain the results
var isPossiblePoint *possibleGame
@ -111,29 +94,6 @@ func PossibleGamesSum(s string, gn int, gt *int) {
}
}
func PowerSetsSum(s string, pt *int) {
// In this case, we need an array of integers
minSet := minimumSet{red: 0, green: 0, blue: 0}
var minSetPoint *minimumSet
minSetPoint = &minSet
// We receive a string with the sets, not split
// We proceed to split
sets, numSets := splitSets(s)
// We received a []string with sets and the number of sets
// Now it's time to create a map
var mySet map[string]int
// For every set we have in the current game
for i := 0; i < numSets; i++ {
// We create a map
mySet = newGameSet(sets[i])
// We find the minimum set
findMinimumSet(mySet, minSetPoint)
}
*pt += (minSet.red * minSet.green * minSet.blue)
}
func PrintAndWait[T any](x T) {
fmt.Print(x)
fmt.Scanln()
@ -151,10 +111,6 @@ func main() {
gameSum := 0
gameSumPoint = &gameSum
// Variable for the sum of the power of the sets
var power int = 0
// Pointer to power, nice variable name
var powerPoint *int = &power
_ = gameNum
scanner := bufio.NewScanner(file)
@ -168,8 +124,6 @@ func main() {
gameNum, _ = strconv.Atoi(strings.Replace(gameAndCubes[0], "Game ", "", 1))
// Now, for every game, split the sets
PossibleGamesSum(gameAndCubes[1], gameNum, gameSumPoint)
PowerSetsSum(gameAndCubes[1], powerPoint)
}
fmt.Printf("The sum of possible games is: %d\n", gameSum)
fmt.Printf("The sum of the power of sets is: %d\n", power)
}