diff --git a/02/02.go b/02/02.go new file mode 100644 index 0000000..ff4a334 --- /dev/null +++ b/02/02.go @@ -0,0 +1,89 @@ +package main + +import ( + "fmt" + "os" + "strconv" + "strings" + "slices" +) + +func SplitByLines(bytes []byte) []string { + return strings.Split(strings.Trim(string(bytes[:]), "\n"), "\n") +} + +func Less(a, b int) bool { + return ab +} +func P(f func (int, int) bool, a, b int) bool { + return f(a, b) && Abs(a-b)<=3 +} +func Abs(x int) int { + if x<0 { + x = -x + } + return x +} +func Safe1(l []int, j, e int) bool { + f := Less + if l[j-1]>l[j] { f = More } + for jl[1] { f = More } + c := 0 + j := 2 + for jb +q = lambda a, b: abs(a-b)<=3 + +def safe1(l): + if l[0]l[1]: + f = more + else: + return False + return all(f(a, b) and q(a, b) for a, b in zip(l, l[1:])) + +print(sum(1 for x in data if safe1(x))) + +def safe2(l): + r = False + for i in range(len(l)): + t = l[:] + del t[i] + r = r or safe1(t) + return r + +print(sum(1 for x in data if safe2(x)))