File tree Expand file tree Collapse file tree 2 files changed +87
-1
lines changed
Expand file tree Collapse file tree 2 files changed +87
-1
lines changed Original file line number Diff line number Diff line change 1010| ---| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
1111| python3 | [ ✓] ( src/main/python/AoC2025_01.py ) | [ ✓] ( src/main/python/AoC2025_02.py ) | [ ✓] ( src/main/python/AoC2025_03.py ) | [ ✓] ( src/main/python/AoC2025_04.py ) | [ ✓] ( src/main/python/AoC2025_05.py ) | [ ✓] ( src/main/python/AoC2025_06.py ) | [ ✓] ( src/main/python/AoC2025_07.py ) | | | | | |
1212| java | [ ✓] ( src/main/java/AoC2025_01.java ) | [ ✓] ( src/main/java/AoC2025_02.java ) | [ ✓] ( src/main/java/AoC2025_03.java ) | [ ✓] ( src/main/java/AoC2025_04.java ) | [ ✓] ( src/main/java/AoC2025_05.java ) | [ ✓] ( src/main/java/AoC2025_06.java ) | [ ✓] ( src/main/java/AoC2025_07.java ) | | | | | |
13- | bash | [ ✓] ( src/main/bash/AoC2025_01.sh ) | [ ✓] ( src/main/bash/AoC2025_02.sh ) | [ ✓] ( src/main/bash/AoC2025_03.sh ) | [ ✓] ( src/main/bash/AoC2025_04.sh ) | [ ✓] ( src/main/bash/AoC2025_05.sh ) | [ ✓] ( src/main/bash/AoC2025_06.sh ) | | | | | | |
13+ | bash | [ ✓] ( src/main/bash/AoC2025_01.sh ) | [ ✓] ( src/main/bash/AoC2025_02.sh ) | [ ✓] ( src/main/bash/AoC2025_03.sh ) | [ ✓] ( src/main/bash/AoC2025_04.sh ) | [ ✓] ( src/main/bash/AoC2025_05.sh ) | [ ✓] ( src/main/bash/AoC2025_06.sh ) | [ ✓ ] ( src/main/bash/AoC2025_07.sh ) | | | | | |
1414<!-- @END:ImplementationsTable:2025@ -->
1515
1616## 2024
Original file line number Diff line number Diff line change 1+ #! /bin/bash
2+ #
3+ # Advent of Code 2025 Day 7
4+ #
5+
6+ year=2025
7+ day=07
8+
9+ solve () {
10+ local -i part=" $1 "
11+
12+ declare -a dp
13+ local -i ans1=0
14+ local -i first=1
15+ while read -r line || [ -n " $line " ]; do
16+ if (( first == 1 )) ; then
17+ for (( i = 0 ; i < "${# line} "; i++ )) ; do
18+ if [ " ${line: i: 1} " = ' S' ]; then
19+ dp+=(1)
20+ else
21+ dp+=(0)
22+ fi
23+ done
24+ (( first = 0 ))
25+ else
26+ for (( i = 0 ; i < "${# line} "; i++ )) ; do
27+ if [ " ${line: i: 1} " = ' ^' ]; then
28+ (( dp[i] > 0 )) && (( ans1 ++ ))
29+ (( dp[i - 1 ] += dp[i]))
30+ (( dp[i + 1 ] += dp[i]))
31+ (( dp[i] = 0 ))
32+ fi
33+ done
34+ fi
35+ done < " $2 "
36+
37+ if (( part == 1 )) ; then
38+ echo " $ans1 "
39+ else
40+ local -i ans2=0
41+ for n in " ${dp[@]} " ; do
42+ (( ans2 += n))
43+ done
44+ echo " $ans2 "
45+ fi
46+ return 0
47+ }
48+
49+ part1 () {
50+ solve 1 " $1 "
51+ return 0
52+ }
53+
54+ part2 () {
55+ solve 2 " $1 "
56+ return 0
57+ }
58+
59+ tests () {
60+ # shellcheck disable=SC2034
61+ {
62+ sample=(
63+ " .......S......."
64+ " ..............."
65+ " .......^......."
66+ " ..............."
67+ " ......^.^......"
68+ " ..............."
69+ " .....^.^.^....."
70+ " ..............."
71+ " ....^.^...^...."
72+ " ..............."
73+ " ...^.^...^.^..."
74+ " ..............."
75+ " ..^...^.....^.."
76+ " ..............."
77+ " .^.^.^.^.^...^."
78+ " ..............."
79+ )
80+ }
81+
82+ TEST part1 sample 21
83+ TEST part2 sample 40
84+ }
85+
86+ source " $( dirname " $0 " ) /aoc_main.sh"
You can’t perform that action at this time.
0 commit comments