mirror of
https://github.com/onyx-and-iris/aoc2023.git
synced 2025-04-20 03:03:47 +01:00
Compare commits
2 Commits
c9ea61c7f4
...
153db25343
Author | SHA1 | Date | |
---|---|---|---|
153db25343 | |||
df7fa4b973 |
@ -34,4 +34,71 @@ func TestSymbolToBool(t *testing.T) {
|
|||||||
|
|
||||||
func TestCheckDigit(t *testing.T) {
|
func TestCheckDigit(t *testing.T) {
|
||||||
//t.Skip("skipping test")
|
//t.Skip("skipping test")
|
||||||
|
symbols := [][]bool{
|
||||||
|
{false, false, false, false, false, false, false, false, false, false},
|
||||||
|
{false, false, false, true, false, false, false, false, false, false},
|
||||||
|
{false, false, false, false, false, false, false, false, false, false},
|
||||||
|
{false, false, false, false, false, false, true, false, false, false},
|
||||||
|
}
|
||||||
|
|
||||||
|
d1 := func() digit {
|
||||||
|
var d digit = digit{row: 0, col: 2, raw: 0, pass: false}
|
||||||
|
i := d.col - 1
|
||||||
|
for ; i < len(symbols[d.row]) && i <= d.col+1; i += 1 {
|
||||||
|
if i < 0 {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if d.row != 0 {
|
||||||
|
if symbols[d.row-1][i] {
|
||||||
|
d.pass = true
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if symbols[d.row][i] {
|
||||||
|
d.pass = true
|
||||||
|
break
|
||||||
|
}
|
||||||
|
if d.row != len(symbols)-1 {
|
||||||
|
if symbols[d.row+1][i] {
|
||||||
|
d.pass = true
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return d
|
||||||
|
}()
|
||||||
|
d2 := func() digit {
|
||||||
|
var d digit = digit{row: 2, col: 9, raw: 0, pass: false}
|
||||||
|
i := d.col - 1
|
||||||
|
for ; i < len(symbols[d.row]) && i <= d.col+1; i += 1 {
|
||||||
|
if i < 0 {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if d.row != 0 {
|
||||||
|
if symbols[d.row-1][i] {
|
||||||
|
d.pass = true
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if symbols[d.row][i] {
|
||||||
|
d.pass = true
|
||||||
|
break
|
||||||
|
}
|
||||||
|
if d.row != len(symbols)-1 {
|
||||||
|
if symbols[d.row+1][i] {
|
||||||
|
d.pass = true
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return d
|
||||||
|
}()
|
||||||
|
|
||||||
|
t.Run("Should pass the check", func(t *testing.T) {
|
||||||
|
assert.Equal(t, true, d1.pass)
|
||||||
|
})
|
||||||
|
|
||||||
|
t.Run("Should fail the check", func(t *testing.T) {
|
||||||
|
assert.Equal(t, false, d2.pass)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
10
day-3/two.go
10
day-3/two.go
@ -12,12 +12,10 @@ func getGearRatio(row, col int) (int, error) {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
for _, enginePart := range engineParts[i] {
|
for _, enginePart := range engineParts[i] {
|
||||||
for _, part := range enginePart.digits {
|
for _, digit := range enginePart.digits {
|
||||||
if part.col == col-1 || part.col == col || part.col == col+1 {
|
if digit.pass && digit.col == col-1 || digit.col == col || digit.col == col+1 {
|
||||||
if anyTrue(enginePart.digits) {
|
partsConsidered = append(partsConsidered, enginePart)
|
||||||
partsConsidered = append(partsConsidered, enginePart)
|
break
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user