File tree Expand file tree Collapse file tree 2 files changed +40
-10
lines changed Expand file tree Collapse file tree 2 files changed +40
-10
lines changed Original file line number Diff line number Diff line change @@ -37,6 +37,39 @@ func fullyCovers(pair Pair) bool {
37
37
return false
38
38
}
39
39
40
+ func p2 (lines []string ) int {
41
+ var overlapped int
42
+ for _ , line := range lines {
43
+ pair := lineToPair (line )
44
+
45
+ if overlaps (pair ) {
46
+ overlapped ++
47
+ continue
48
+ }
49
+ }
50
+ return overlapped
51
+ }
52
+
53
+ func overlaps (pair Pair ) bool {
54
+ if fullyCovers (pair ) {
55
+ return true
56
+ }
57
+
58
+ if pair .left .start >= pair .right .start && pair .left .start <= pair .right .stop {
59
+ return true
60
+ }
61
+ if pair .right .start >= pair .left .start && pair .right .stop <= pair .left .stop {
62
+ return true
63
+ }
64
+ if pair .left .stop >= pair .right .start && pair .left .stop <= pair .right .stop {
65
+ return true
66
+ }
67
+ if pair .right .stop >= pair .left .start && pair .right .stop <= pair .left .stop {
68
+ return true
69
+ }
70
+ return false
71
+ }
72
+
40
73
func lineToPair (line string ) Pair {
41
74
p := strings .Split (line , "," )
42
75
left := strings .Split (p [0 ], "-" )
@@ -59,10 +92,6 @@ func lineToPair(line string) Pair {
59
92
}
60
93
}
61
94
62
- func p2 (input []string ) int {
63
- return 0
64
- }
65
-
66
95
type Pair struct {
67
96
left Assignment
68
97
right Assignment
Original file line number Diff line number Diff line change @@ -12,17 +12,18 @@ func TestExamplePart1(t *testing.T) {
12
12
p1 (parseInput (example )))
13
13
}
14
14
15
- // func TestExamplePart2(t *testing.T) {
16
- // assert.Equal(t,
17
- // 'heyo' ,
18
- // p2(parseInput(example)))
19
- // }
15
+ func TestExamplePart2 (t * testing.T ) {
16
+ assert .Equal (t ,
17
+ 4 ,
18
+ p2 (parseInput (example )))
19
+ }
20
20
21
21
const (
22
22
example = `2-4,6-8
23
23
2-3,4-5
24
24
5-7,7-9
25
25
2-8,3-7
26
26
6-6,4-6
27
- 2-6,4-8`
27
+ 2-6,4-8
28
+ `
28
29
)
You can’t perform that action at this time.
0 commit comments