-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAdvent Of Code Day 7 part1.ps1
33 lines (33 loc) · 1.04 KB
/
Advent Of Code Day 7 part1.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
$inputdata = (get-content -Raw .\aocd7input.txt) -split "`n"
$colorrules=@{}
foreach($rule in $inputdata){
if($rule -eq ""){
continue
} else {
$rule = $rule -replace "bags", ""
$rule = $rule -replace "bag", ""
$outerbag, $innerbags = $rule -split " contain ", 2
$innerbagsrule= $innerbags-split ","
$outerbag=$outerbag.trim() -replace '[^a-zA-Z]',""
$colorrules[$outerbag]=@{}
foreach($myrule in $innerbagsrule){
$count, $color = $myrule.trim() -split " ",2
$color = $color.trim() -replace '[^a-zA-Z]',""
#write-host "Color:$color-Count:$count"
$colorrules[$outerbag].add($color,$count)
}
}
}
$options =0
function get-outerbagoptions(){
param (
$BagColor
)
foreach($myrule in $colorrules.keys){
if($colorrules[$myrule]."$bagcolor"){
get-outerbagoptions -BagColor $myrule
$myrule
}
}
}
get-outerbagoptions -bagcolor "shinygold"|select-object -Unique|Measure-Object