Skip to content

Commit dfe95f8

Browse files
committed
2024.07 refactor
1 parent 9515efd commit dfe95f8

File tree

1 file changed

+22
-15
lines changed

1 file changed

+22
-15
lines changed

2024/7-bridge/main.go

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -27,34 +27,41 @@ func main() {
2727
scan := bufio.NewScanner(file)
2828

2929
var parts []string
30-
var sum, result int
30+
var result, sum int
3131
var numbers []int
3232

3333
for scan.Scan() {
3434
parts = strings.SplitN(scan.Text(), ": ", 2)
3535
sum, _ = strconv.Atoi(parts[0])
3636
numbers = util.StringToInts(parts[1], " ")
3737

38-
possibilities := int(math.Pow(2, float64(len(numbers)-1)))
39-
for i := range possibilities {
40-
bin := ("0000000000" + fmt.Sprintf("%b", i))
41-
bin = bin[len(bin)-len(numbers)+1:]
38+
if resolves(sum, numbers) {
39+
result += sum
40+
}
41+
}
4242

43-
total := numbers[0]
44-
for k := range len(bin) {
45-
total = modifiers[bin[k]-'0'](total, numbers[k+1])
43+
fmt.Println(result)
44+
}
4645

47-
if total > sum {
48-
break
49-
}
50-
}
46+
func resolves(sum int, numbers []int) bool {
47+
possibilities := int(math.Pow(2, float64(len(numbers)-1)))
48+
for i := range possibilities {
49+
bin := ("0000000000" + fmt.Sprintf("%b", i))
50+
bin = bin[len(bin)-len(numbers)+1:]
5151

52-
if total == sum {
53-
result += total
52+
total := numbers[0]
53+
for k := range len(bin) {
54+
total = modifiers[bin[k]-'0'](total, numbers[k+1])
55+
56+
if total > sum {
5457
break
5558
}
5659
}
60+
61+
if total == sum {
62+
return true
63+
}
5764
}
5865

59-
fmt.Println(result)
66+
return false
6067
}

0 commit comments

Comments
 (0)