2023 Day 23 Complete!

This commit is contained in:
2023-12-27 11:42:49 -06:00
parent ce40faf813
commit 109ce307e2
2 changed files with 174 additions and 113 deletions

View File

@@ -1,10 +1,10 @@
package aoc
type Queue[T comparable] struct {
type Queue[T any] struct {
items []T
}
func NewQueue[T comparable](items []T) *Queue[T] {
func NewQueue[T any](items []T) *Queue[T] {
return &Queue[T]{
items: items,
}
@@ -46,14 +46,18 @@ func (q *Queue[T]) Cut(at, count int) []T {
q.items = append(q.items[:at], q.items[at+count:]...)
return ret
}
func (q *Queue[T]) Delete(item T) {
for i := range q.items {
if q.items[i] == item {
q.items = append(q.items[:i], q.items[i+1:]...)
return
}
}
func (q *Queue[T]) DeleteAt(idx int) {
q.items = append(q.items[:idx], q.items[idx+1:]...)
}
// func (q *Queue[T]) Delete(item T) {
// for i := range q.items {
// if q.items[i] == item {
// q.items = append(q.items[:i], q.items[i+1:]...)
// return
// }
// }
// }
func (q *Queue[T]) Expand(at, by int) {
q.items = append(q.items[:at], append(make([]T, by), q.items[at:]...)...)
}