Day 1
This commit is contained in:
commit
406d4f06eb
3 changed files with 68 additions and 0 deletions
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
*.bin
|
||||
*.txt
|
||||
64
d01/main.odin
Normal file
64
d01/main.odin
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
package main
|
||||
|
||||
import "core:slice"
|
||||
import "core:strconv"
|
||||
import "core:strings"
|
||||
import "core:bytes"
|
||||
import "core:fmt"
|
||||
import "core:os"
|
||||
|
||||
import "../util"
|
||||
|
||||
part_1 :: proc(lines: []string) {
|
||||
nums := slice.mapper(lines[:], proc(line: string) -> i64 {
|
||||
num, ok := strconv.parse_int(line); assert(ok)
|
||||
return i64(num)
|
||||
})
|
||||
|
||||
maybe_result: Maybe(i64) = nil
|
||||
for num1, idx1 in nums {
|
||||
for num2 in nums[idx1:] {
|
||||
sum := num1 + num2
|
||||
if sum == 2020 {
|
||||
maybe_result = num1 * num2
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
result, ok := maybe_result.?; assert(ok)
|
||||
fmt.printfln("Part 1: %d", result)
|
||||
}
|
||||
|
||||
part_2 :: proc(lines: []string) {
|
||||
nums := slice.mapper(lines[:], proc(line: string) -> i64 {
|
||||
num, ok := strconv.parse_i64(line); assert(ok)
|
||||
return num
|
||||
})
|
||||
|
||||
maybe_result: Maybe(i64) = nil
|
||||
for num1, idx1 in nums {
|
||||
for num2, idx2 in nums[idx1:] {
|
||||
for num3 in nums[idx2:] {
|
||||
sum := num1 + num2 + num3
|
||||
if sum == 2020 {
|
||||
maybe_result = num1 * num2 * num3
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
result, ok := maybe_result.?; assert(ok)
|
||||
fmt.printfln("Part 2: %d", result)
|
||||
}
|
||||
|
||||
main :: proc() {
|
||||
INPUT :: #load("input.txt", string)
|
||||
lines := strings.split(INPUT, "\n")
|
||||
defer delete(lines)
|
||||
lines = lines[:len(lines)-1]
|
||||
|
||||
part_1(lines)
|
||||
part_2(lines)
|
||||
}
|
||||
2
util/util.odin
Normal file
2
util/util.odin
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
package util
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue