Added solutions for 11th day: octopus flashes
This commit is contained in:
parent
5d7ee2e502
commit
26b9d8e224
4 changed files with 140 additions and 0 deletions
10
2021/11/example
Normal file
10
2021/11/example
Normal file
|
@ -0,0 +1,10 @@
|
|||
5483143223
|
||||
2745854711
|
||||
5264556173
|
||||
6141336146
|
||||
6357385478
|
||||
4167524645
|
||||
2176841721
|
||||
6882881134
|
||||
4846848554
|
||||
5283751526
|
57
2021/11/first.go
Normal file
57
2021/11/first.go
Normal file
|
@ -0,0 +1,57 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"fmt"
|
||||
"os"
|
||||
)
|
||||
|
||||
var (
|
||||
grid = make([][]byte, 0)
|
||||
score = 0
|
||||
)
|
||||
|
||||
func powerup(x, y int) {
|
||||
if x < 0 || x > 9 || y < 0 || y > 9 || grid[x][y] > 9 {
|
||||
return
|
||||
}
|
||||
grid[x][y]++
|
||||
if grid[x][y] > 9 {
|
||||
score++
|
||||
powerup(x-1, y-1)
|
||||
powerup(x, y-1)
|
||||
powerup(x+1, y-1)
|
||||
powerup(x-1, y)
|
||||
powerup(x+1, y)
|
||||
powerup(x-1, y+1)
|
||||
powerup(x, y+1)
|
||||
powerup(x+1, y+1)
|
||||
}
|
||||
}
|
||||
func main() {
|
||||
scanner := bufio.NewScanner(os.Stdin)
|
||||
for scanner.Scan() {
|
||||
line := scanner.Text()
|
||||
l := make([]byte, len(line))
|
||||
for i := 0; i < len(line); i++ {
|
||||
l[i] = line[i] - '0'
|
||||
}
|
||||
grid = append(grid, l)
|
||||
}
|
||||
|
||||
for i := 0; i < 100; i++ {
|
||||
for y := 0; y < 10; y++ {
|
||||
for x := 0; x < 10; x++ {
|
||||
powerup(x, y)
|
||||
}
|
||||
}
|
||||
for y := 0; y < 10; y++ {
|
||||
for x := 0; x < 10; x++ {
|
||||
if grid[x][y] > 9 {
|
||||
grid[x][y] = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
fmt.Println(score)
|
||||
}
|
10
2021/11/input
Normal file
10
2021/11/input
Normal file
|
@ -0,0 +1,10 @@
|
|||
8448854321
|
||||
4447645251
|
||||
6542573645
|
||||
4725275268
|
||||
6442514153
|
||||
4515734868
|
||||
5513676158
|
||||
3257376185
|
||||
2172424467
|
||||
6775163586
|
63
2021/11/second.go
Normal file
63
2021/11/second.go
Normal file
|
@ -0,0 +1,63 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"fmt"
|
||||
"os"
|
||||
)
|
||||
|
||||
var (
|
||||
grid = make([][]byte, 0)
|
||||
score = 0
|
||||
)
|
||||
|
||||
func powerup(x, y int) {
|
||||
if x < 0 || x > 9 || y < 0 || y > 9 || grid[x][y] > 9 {
|
||||
return
|
||||
}
|
||||
grid[x][y]++
|
||||
if grid[x][y] > 9 {
|
||||
score++
|
||||
powerup(x-1, y-1)
|
||||
powerup(x, y-1)
|
||||
powerup(x+1, y-1)
|
||||
powerup(x-1, y)
|
||||
powerup(x+1, y)
|
||||
powerup(x-1, y+1)
|
||||
powerup(x, y+1)
|
||||
powerup(x+1, y+1)
|
||||
}
|
||||
}
|
||||
func main() {
|
||||
scanner := bufio.NewScanner(os.Stdin)
|
||||
for scanner.Scan() {
|
||||
line := scanner.Text()
|
||||
l := make([]byte, len(line))
|
||||
for i := 0; i < len(line); i++ {
|
||||
l[i] = line[i] - '0'
|
||||
}
|
||||
grid = append(grid, l)
|
||||
}
|
||||
|
||||
i := 0
|
||||
for {
|
||||
score = 0
|
||||
for y := 0; y < 10; y++ {
|
||||
for x := 0; x < 10; x++ {
|
||||
powerup(x, y)
|
||||
}
|
||||
}
|
||||
for y := 0; y < 10; y++ {
|
||||
for x := 0; x < 10; x++ {
|
||||
if grid[x][y] > 9 {
|
||||
grid[x][y] = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
i++
|
||||
if score == 100 {
|
||||
break
|
||||
}
|
||||
}
|
||||
fmt.Println(i)
|
||||
}
|
Loading…
Add table
Reference in a new issue