Skip to content

Instantly share code, notes, and snippets.

View bartoszm's full-sized avatar

Bartosz Michalik bartoszm

View GitHub Profile
object S99_P12 {
def decode[T](its: Seq[(Int, T)]): Seq[T] = {
its.foldLeft(List[T]()) { (l, e) => l ++ List.fill(e._1)(e._2) }
}
}
@bartoszm
bartoszm / cloudSettings
Last active October 11, 2021 09:06
Visual Studio Code Settings Sync Gist
{"lastUpload":"2021-10-11T09:06:00.478Z","extensionVersion":"v3.4.3"}
@bartoszm
bartoszm / yq file prcessing
Last active June 10, 2021 14:43
Remove all nodes from YAML matching the pattern (name starts from '@)
yq -w 250 -Y -i '[(paths | select(.[-1] | tostring | test("^@")))] as $paths | delpaths($paths)' <<file>>
@bartoszm
bartoszm / Day9B.kt
Last active December 9, 2021 07:43
AoC2021 Day 9 part 2
package day9
import java.nio.file.Files
import java.nio.file.Path
class Day9b(val inputs: Array<IntArray>) {
val inner = inputs[0].size - 1
val outer = inputs.size - 1
val used = mutableSetOf<Pair<Int, Int>>()
@bartoszm
bartoszm / Day10.kt
Last active December 10, 2021 06:34
Day 10 part 2
package day10
import java.nio.file.Files
import java.nio.file.Path
import kotlin.system.measureTimeMillis
object Day10b {
val mapScore = mapOf(
')' to 1L,
package day11
import java.nio.file.Files
import java.nio.file.Path
class State(private val data: Array<IntArray>) {
val inner = data[0].size - 1
val outer = data.size - 1
val flashes by lazy { data.sumOf { row -> row.count { it == 0 } } }
@bartoszm
bartoszm / Day13.kt
Created December 13, 2021 08:06
Day 13 part 1+2 (main solves 2)
abstract class Fold(val line: Int) {
abstract fun transform(p: Pair<Int, Int>): Pair<Int, Int>
}
class FoldX(line: Int) : Fold(line) {
override fun transform(p: Pair<Int, Int>): Pair<Int, Int> {
val x = p.first
val d = line - x
return if(x > line) Pair(x + d*2, p.second) else p
}
package day14
import java.nio.file.Files
import java.nio.file.Path
class Day14_Part2(val input: Input) {
val rules = input.rules.map { it.first to it.second }.toMap()
private fun find(s: String) = rules[s]
@bartoszm
bartoszm / Day18.kt
Last active December 18, 2021 18:52
Day 18 - ugly solution for both parts
package day18
import java.nio.file.Files
import java.nio.file.Path
sealed class Node(var parent: Regular? = null) {
abstract fun tryExplode(level: Int = 0): Boolean
abstract fun trySplit() : Boolean
internal fun reduce() {
package day20
import java.nio.file.Files
import java.nio.file.Path
class Enhancer(val code: String) {
private fun getPixel(r: Int, c: Int, data: List<String>) = data.getOrNull(r)?.getOrNull(c) ?: defaultChar
private var defaultChar = '.'