Rename folders
This commit is contained in:
73
04/main.go
Normal file
73
04/main.go
Normal file
@@ -0,0 +1,73 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func main() {
|
||||
file, err := os.Open("input")
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
defer file.Close()
|
||||
scanner := bufio.NewScanner(file)
|
||||
resultXMAS := 0
|
||||
resultMASX := 0
|
||||
// word := []string{"X","M","A","S"}
|
||||
table := [][]string{}
|
||||
for scanner.Scan() {
|
||||
line := scanner.Text()
|
||||
// fmt.Println(line)
|
||||
table = append(table, strings.Split(line, ""))
|
||||
}
|
||||
for i := range table {
|
||||
for j := range table[i] {
|
||||
//XMAS
|
||||
if table[i][j] == "X" {
|
||||
//HORIZONTAL DOWN
|
||||
if i < len(table)-3 && table[i+1][j]+table[i+2][j]+table[i+3][j] == "MAS" {
|
||||
resultXMAS++
|
||||
}
|
||||
//HORIZONTAL UP
|
||||
if i >= 3 && table[i-1][j]+table[i-2][j]+table[i-3][j] == "MAS" {
|
||||
resultXMAS++
|
||||
}
|
||||
//HORIZONTAL RIGHT
|
||||
if j < len(table[i])-3 && table[i][j+1]+table[i][j+2]+table[i][j+3] == "MAS" {
|
||||
resultXMAS++
|
||||
}
|
||||
//HORIZONTAL LEFT
|
||||
if j >= 3 && table[i][j-1]+table[i][j-2]+table[i][j-3] == "MAS" {
|
||||
resultXMAS++
|
||||
}
|
||||
//DIAGONAL DOWNRIGHT
|
||||
if i < len(table)-3 && j < len(table[i])-3 && table[i+1][j+1]+table[i+2][j+2]+table[i+3][j+3] == "MAS" {
|
||||
resultXMAS++
|
||||
}
|
||||
//DIAGONAL DOWNLEFT
|
||||
if i < len(table)-3 && j >= 3 && table[i+1][j-1]+table[i+2][j-2]+table[i+3][j-3] == "MAS" {
|
||||
resultXMAS++
|
||||
}
|
||||
//DIAGONAL UPLEFT
|
||||
if i >= 3 && j >= 3 && table[i-1][j-1]+table[i-2][j-2]+table[i-3][j-3] == "MAS" {
|
||||
resultXMAS++
|
||||
}
|
||||
//DIAGONAL UPRIGHT
|
||||
if i >= 3 && j < len(table[i])-3 && table[i-1][j+1]+table[i-2][j+2]+table[i-3][j+3] == "MAS" {
|
||||
resultXMAS++
|
||||
}
|
||||
}
|
||||
//MASX
|
||||
if table[i][j] == "A" {
|
||||
if i < len(table)-1 && i >=1 && j < len(table[i])-1 && j>=1 && (table[i-1][j-1]+table[i+1][j+1] == "MS" || table[i-1][j-1]+table[i+1][j+1] == "SM") && (table[i-1][j+1]+table[i+1][j-1] == "MS" || table[i-1][j+1]+table[i+1][j-1] == "SM") {
|
||||
resultMASX++
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
fmt.Println("XMAS contained :",resultXMAS)
|
||||
fmt.Println("MAS in X contained :",resultMASX)
|
||||
}
|
||||
Reference in New Issue
Block a user