diff --git a/03-a.kts b/03-a.kts new file mode 100644 index 0000000..8451fe7 --- /dev/null +++ b/03-a.kts @@ -0,0 +1,13 @@ +import java.util.Scanner +import java.util.regex.Pattern + +val pattern: Pattern = Pattern.compile("mul\\([0-9]+,[0-9]+\\)") +val scanner = Scanner(System.`in`) + +var sum = 0 +while (true) { + val next: String = scanner.findWithinHorizon(pattern, 0) ?: break + + sum += next.replace("mul(", "").replace(")", "").split(",").map { it.toInt() }.let { (a, b) -> a*b } +} +println(sum) \ No newline at end of file diff --git a/03-b.kts b/03-b.kts new file mode 100644 index 0000000..ff03734 --- /dev/null +++ b/03-b.kts @@ -0,0 +1,21 @@ +import java.util.Scanner +import java.util.regex.Pattern + +val pattern: Pattern = Pattern.compile("mul\\([0-9]+,[0-9]+\\)|do\\(\\)|don't\\(\\)") + +val scanner = Scanner(System.`in`) + +var sum = 0 +var enabled = true +while (true) { + val next: String = scanner.findWithinHorizon(pattern, 0) ?: break + + when (next) { + "do()" -> enabled = true + "don't()" -> enabled = false + else -> if (enabled) { + sum += next.replace("mul(", "").replace(")", "").split(",").map { it.toInt() }.let { (a, b) -> a*b } + } + } +} +println(sum) \ No newline at end of file