diff --git a/2022/RESULTS.txt b/2022/RESULTS.txt index bdd835c..7073e46 100644 --- a/2022/RESULTS.txt +++ b/2022/RESULTS.txt @@ -136,10 +136,10 @@ aoc-c: res=2260 +++++++++++++++++ part 1 aoc.bash: res=1390824 - time: 0:00.10 real, 0.07 user, 0.03 sys - context-switch: 8+1, page-faults: 0+312 + time: 0:00.05 real, 0.03 user, 0.01 sys + context-switch: 7+1, page-faults: 0+307 +++++++++++++++++ part 2 aoc.bash: res=7490863 - time: 0:00.10 real, 0.08 user, 0.01 sys - context-switch: 8+1, page-faults: 0+317 + time: 0:00.05 real, 0.05 user, 0.00 sys + context-switch: 9+1, page-faults: 0+308 diff --git a/2022/day07/aoc.bash b/2022/day07/aoc.bash index ba25c72..04d8f97 100755 --- a/2022/day07/aoc.bash +++ b/2022/day07/aoc.bash @@ -37,18 +37,18 @@ do_cd() { } do_ls() { - local info file remain + local remain + local -i size ((curline++)) while [[ $curline -lt ${#lines[@]} && ${lines[$curline]:0:1} != "\$" ]]; do - read -r info file <<< "${lines[$curline]}" - if [[ $info != dir ]]; then # file - remain="$curdir/$file" - remain=${remain//+(\/)/\/} + if [[ "${lines[$curline]}" != dir* ]]; then + size=${lines[$curline]% *} + remain="$curdir" while [[ -n $remain ]]; do # recurse up curdir and adjust sizes - ((sizes[$remain] += info)) + ((sizes[$remain] += size)) remain=${remain%/*} done - (( sizes["/"] += info )) + (( sizes["/"] += size )) fi ((curline++)) done