Files
aoc24/day03/d03p2.swift
2024-12-12 14:36:30 -08:00

21 lines
519 B
Swift

import Foundation
let input = try String(contentsOfFile: CommandLine.arguments[1])
let commandPattern = try Regex(#"mul\(([0-9]+),([0-9]+)\)|don't\(\)|do\(\)"#)
var enabled: Bool = true
var sum: Int = 0
for cmd in input.matches(of: commandPattern) {
switch cmd.output[0].substring {
case "don't()":
enabled = false
case "do()":
enabled = true
default:
if enabled {
sum += Int(cmd.output[1].substring!)! * Int(cmd.output[2].substring!)!
}
}
}
print(sum)