Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #https://adventofcode.com/2020/day/2
- $cookie_id = "53616xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
- $session = New-Object Microsoft.PowerShell.Commands.WebRequestSession
- $session.Cookies.Add((New-Object System.Net.Cookie("session", $cookie_id, "/", ".adventofcode.com")))
- $in = Invoke-WebRequest -UseBasicParsing -Uri "https://adventofcode.com/2020/day/2/input"
- -WebSession $session
- $in = $in.content -split ("\n")
- $invalid=$invalid_2=0
- #Some string manipulation to split appart both minimum and maximum, desired char and the password
- $in |? {$_} | % {
- $policy = $_.Split(":")
- $password = $policy.trim()[1]
- $policy_char= $policy.trim()[0].Split(" ")[1]
- $policy_min = $policy.trim()[0].Split(" ")[0].split("-")[0]
- $policy_max = $policy.trim()[0].Split(" ")[0].split("-")[1]
- $occurences = ([regex]::Matches($password, $policy_char)).count
- if ($occurences -lt $policy_min -or $occurences -gt $policy_max){
- $invalid +=1
- }
- #Exclusive or so both conditions cannot be met a the same time, as required
- if (!(($password[[int]$policy_min-1] -like $policy_char) -xor ($password[[int]$policy_max-1] -like $policy_char))){
- $invalid_2 += 1
- }
- }
- $answers = @((1000-$invalid),(1000-$invalid_2) )
Add Comment
Please, Sign In to add comment