Compare commits
No commits in common. "00815609cb37ea1b074b9b924401827189fdd91a" and "d2ce81647b53cbeeec2595f9b6c9a672371c3f7f" have entirely different histories.
00815609cb
...
d2ce81647b
@ -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)
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user