add new solutions
This commit is contained in:
parent
d798d5e8c9
commit
886b5e0a8e
34 changed files with 1164 additions and 0 deletions
37
solutions/1/q130/solution.go
Normal file
37
solutions/1/q130/solution.go
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
package q130
|
||||
|
||||
func markI(board [][]byte, x, y int) {
|
||||
w, h := len(board[0]), len(board)
|
||||
if x < 0 || y < 0 || x >= w || y >= h || board[y][x] != 'O' {
|
||||
return
|
||||
}
|
||||
board[y][x] = 'I'
|
||||
markI(board, x, y+1)
|
||||
markI(board, x, y-1)
|
||||
markI(board, x+1, y)
|
||||
markI(board, x-1, y)
|
||||
}
|
||||
|
||||
func solve(board [][]byte) {
|
||||
for i := range len(board) {
|
||||
markI(board, 0, i)
|
||||
markI(board, len(board[0])-1, i)
|
||||
}
|
||||
for i := range len(board[0]) {
|
||||
markI(board, i, 0)
|
||||
markI(board, i, len(board)-1)
|
||||
}
|
||||
|
||||
for y := range board {
|
||||
for x := range board[0] {
|
||||
switch board[y][x] {
|
||||
case 'O':
|
||||
board[y][x] = 'X'
|
||||
case 'I':
|
||||
board[y][x] = 'O'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var _ = solve
|
||||
Loading…
Add table
Add a link
Reference in a new issue