-
Notifications
You must be signed in to change notification settings - Fork 0
/
AdventOfCode - Day 4.1.ps1
41 lines (35 loc) · 1.04 KB
/
AdventOfCode - Day 4.1.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
$passports = @()
$new = $true
$passport = $null
Get-Content -Path '.\passports day 4.txt' | % {
if ($new) {
if ($null -ne $passport) {
$passports += $passport
}
$passport = New-Object -TypeName PSObject
}
$new = [String]::IsNullOrEmpty($_)
$pairs = $_ -split ' '
foreach ($pair in $pairs) {
$key = ($pair -split ':')[0]
$value = ($pair -split ':')[1]
if ($key -ne '' -and $value -ne '') {
Add-Member -InputObject $passport -MemberType NoteProperty -Name $key -Value $value
}
}
}
$passports += $passport
$validPassports = 0
for ($i = 0; $i -lt $passports.length; $i++) {
$passport = $passports[$i]
if ($null -ne $passport.byr -and
$null -ne $passport.iyr -and
$null -ne $passport.eyr -and
$null -ne $passport.hgt -and
$null -ne $passport.hcl -and
$null -ne $passport.ecl -and
$null -ne $passport.pid) {
$validPassports++
}
}
$validPassports