feat: init commit. added all prior solutions
commit
44af947ccf
|
@ -0,0 +1,33 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"sort"
|
||||||
|
)
|
||||||
|
|
||||||
|
func abs(num int) int {
|
||||||
|
if (num < 0) {
|
||||||
|
return -num
|
||||||
|
} else {
|
||||||
|
return num
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
var list1 = []int{3,4,2,1,3,3}
|
||||||
|
var list2 = []int{4,3,5,3,9,3}
|
||||||
|
var distanceTotal int = 0
|
||||||
|
sort.Ints(list1)
|
||||||
|
sort.Ints(list2)
|
||||||
|
|
||||||
|
// finding the difference between each number
|
||||||
|
if len(list1) == len(list2) {
|
||||||
|
for i := range list1 {
|
||||||
|
distanceTotal += abs(list1[i]-list2[i])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println(list1)
|
||||||
|
fmt.Println(list2)
|
||||||
|
fmt.Println(distanceTotal)
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
module day1
|
||||||
|
|
||||||
|
go 1.23.0
|
|
@ -0,0 +1,60 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
)
|
||||||
|
|
||||||
|
// https://adventofcode.com/2024/day/2
|
||||||
|
// 7 6 4 2 1
|
||||||
|
// 1 2 7 8 9
|
||||||
|
// 9 7 6 2 1
|
||||||
|
// 1 3 2 4 5
|
||||||
|
// 8 6 4 4 1
|
||||||
|
// 1 3 6 7 9
|
||||||
|
var reports = [][]int{{7,6,4,2,1},
|
||||||
|
{1,2,7,8,9},
|
||||||
|
{9,7,6,2,1},
|
||||||
|
{1,3,2,4,5},
|
||||||
|
{8,6,4,4,1},
|
||||||
|
{1,3,6,7,9}}
|
||||||
|
|
||||||
|
func abs(num int) int {
|
||||||
|
if (num < 0) {
|
||||||
|
return -num
|
||||||
|
} else {
|
||||||
|
return num
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// lvl == level
|
||||||
|
func compareLevels(report []int) (bool) {
|
||||||
|
var isReportSafe bool = false
|
||||||
|
var incrOrDecr bool = report[1] > report[0] // incr: true | decr: false
|
||||||
|
for i := 0; i < len(report)-1; i++ {
|
||||||
|
var lvlDifference int = abs(report[i]-report[i+1])
|
||||||
|
|
||||||
|
if lvlDifference > 3 || lvlDifference == 0 {
|
||||||
|
return false
|
||||||
|
} else if incrOrDecr != (report[i+1] > report[i]) {
|
||||||
|
return false
|
||||||
|
} else {
|
||||||
|
isReportSafe = true
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return isReportSafe
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
var safeReportCount int
|
||||||
|
|
||||||
|
for _, report := range reports {
|
||||||
|
isReportSafe := compareLevels(report)
|
||||||
|
if isReportSafe {
|
||||||
|
safeReportCount++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Printf("List of reports: %v\n", reports)
|
||||||
|
fmt.Printf("Number of safe reports: %v\n", safeReportCount)
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
module day2
|
||||||
|
|
||||||
|
go 1.23.0
|
|
@ -0,0 +1,50 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
)
|
||||||
|
|
||||||
|
var wordSearch = [][]string{{"M","M","M","S","X","X","M","A","S","M"},
|
||||||
|
{"M","S","A","M","X","M","S","M","S","A"},
|
||||||
|
{"A","M","X","S","X","M","A","A","M","M"},
|
||||||
|
{"M","S","A","M","A","S","M","S","M","X"},
|
||||||
|
{"X","M","A","S","A","M","X","A","M","M"},
|
||||||
|
{"X","X","A","M","M","X","X","A","M","A"},
|
||||||
|
{"S","M","S","M","S","A","S","X","S","S"},
|
||||||
|
{"S","A","X","A","M","A","S","A","A","A"},
|
||||||
|
{"M","A","M","M","M","X","M","M","M","M"},
|
||||||
|
{"M","X","M","X","A","X","M","A","S","X"}}
|
||||||
|
|
||||||
|
// func letterSearch(wordSearch string) (string, bool) {
|
||||||
|
|
||||||
|
// }
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
fmt.Println(wordSearch)
|
||||||
|
|
||||||
|
for y, letterRow := range wordSearch {
|
||||||
|
for x, letter := range letterRow {
|
||||||
|
if letter == "X" {
|
||||||
|
/*
|
||||||
|
+----------+----------+----------+
|
||||||
|
| y-1, x-1 | y-1, x | y-1, x+1 |
|
||||||
|
+----------+----------+----------+
|
||||||
|
| y, x-1 | letter | y, x+1 |
|
||||||
|
+----------+----------+----------+
|
||||||
|
| y+1, x-1 | y+1, x | y+1, x+1 |
|
||||||
|
+----------+----------+----------+
|
||||||
|
*/
|
||||||
|
// var letterNeighbors []string
|
||||||
|
// letterNeighbors[0] = board[y-1][x-1]
|
||||||
|
// letterNeighbors[1] = board[y-1][x]
|
||||||
|
// letterNeighbors[2] = board[y-1][x+1]
|
||||||
|
// letterNeighbors[3] = board[y][x-1]
|
||||||
|
// letterNeighbors[4] = board[y][x+1]
|
||||||
|
// letterNeighbors[5] = board[y+1][x-1]
|
||||||
|
// letterNeighbors[6] = board[y+1][x]
|
||||||
|
// letterNeighbors[7] = board[y+1][x+1]
|
||||||
|
}
|
||||||
|
fmt.Println(letter)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
module day4
|
||||||
|
|
||||||
|
go 1.23.0
|
Loading…
Reference in New Issue