File tree Expand file tree Collapse file tree 1 file changed +28
-30
lines changed
Expand file tree Collapse file tree 1 file changed +28
-30
lines changed Original file line number Diff line number Diff line change 66year=2025
77day=05
88
9- part1 () {
10- declare -a ranges
11- local -i split=0
12- local -i ans=0
13- while read -r line || [ -n " $line " ]; do
14- [ -z " $line " ] && {
15- split=1
16- continue
17- }
18- (( split == 0 )) && {
19- ranges+=(" $line " )
20- continue
21- }
22- local -i val=" $line "
23- for rng in " ${ranges[@]} " ; do
24- local -i lo=" ${rng%% -* } "
25- local -i hi=" ${rng: ${# lo} +1} "
26- (( lo <= val && val <= hi)) && {
27- (( ans++ ))
28- break
29- }
30- done
31- done < " $1 "
32- echo " $ans "
33- return 0
34- }
9+ declare -a merged
10+ declare -a ids
3511
36- part2 () {
12+ parse_input () {
3713 declare -a ranges
3814 local -i split=0
3915 while read -r line || [ -n " $line " ]; do
4016 [ -z " $line " ] && {
4117 split=1
42- break
18+ continue
4319 }
4420 (( split == 0 )) && {
4521 ranges+=(" $line " )
4622 continue
4723 }
24+ ids+=(" $line " )
4825 done < " $1 "
49- local -i ans=0
5026 # shellcheck disable=SC2207
5127 IFS=$' \n ' sorted=($( sort --numeric-sort <<< " ${ranges[*]}" ) )
52- declare -a merged
5328 for rng in " ${sorted[@]} " ; do
5429 local -i lo=" ${rng%% -* } "
5530 local -i hi=" ${rng: ${# lo} +1} "
@@ -75,6 +50,29 @@ part2() {
7550 merged+=(" $rng " )
7651 fi
7752 done
53+ return 0
54+ }
55+
56+ part1 () {
57+ parse_input " $1 "
58+ local -i ans=0
59+ for val in " ${ids[@]} " ; do
60+ for rng in " ${merged[@]} " ; do
61+ local -i lo=" ${rng%% -* } "
62+ local -i hi=" ${rng: ${# lo} +1} "
63+ (( lo <= val && val <= hi)) && {
64+ (( ans++ ))
65+ break
66+ }
67+ done
68+ done
69+ echo " $ans "
70+ return 0
71+ }
72+
73+ part2 () {
74+ parse_input " $1 "
75+ local -i ans=0
7876 for rng in " ${merged[@]} " ; do
7977 local -i lo=" ${rng%% -* } "
8078 local -i hi=" ${rng: ${# lo} +1} "
You can’t perform that action at this time.
0 commit comments