Move to subdirectory

This commit is contained in:
Sven Weidauer 2022-11-23 16:34:31 +01:00
parent c4ae807a5f
commit c7deb3c71d
47 changed files with 1208 additions and 0 deletions

39
2020/day2/main.swift Normal file
View file

@ -0,0 +1,39 @@
import Foundation
let input = loadData(day: 2)
var valids = 0
var valid2 = 0
var scanner = Scanner(string: input)
while !scanner.isAtEnd {
guard let min = scanner.scanInt(),
scanner.scanString("-") != nil,
let max = scanner.scanInt(),
let character = scanner.scanCharacter(),
scanner.scanString(":") != nil,
let password = scanner.scanUpToCharacters(from: .newlines)
else {
fatalError("Invalid input");
}
let count = password.lazy.filter { $0 == character }.count
if min <= count && count <= max {
print("valid", min, max, character, password)
valids += 1
}
let first = password.index(password.startIndex, offsetBy: min - 1, limitedBy: password.endIndex).map { password[$0] }
let second = password.index(password.startIndex, offsetBy: max - 1, limitedBy: password.endIndex).map { password[$0] }
if (first == character || second == character) && first != second {
print("valid 2", password)
valid2 += 1
}
}
print("Valid old", valids)
print("Valid new", valid2)