Day 14
This commit is contained in:
25
14/01.sh
Executable file
25
14/01.sh
Executable file
@@ -0,0 +1,25 @@
|
||||
#!/bin/bash
|
||||
|
||||
rules=()
|
||||
n_step=10
|
||||
read polymer
|
||||
read
|
||||
|
||||
while read line; do
|
||||
rules+=( ${line% ->*}'|'${line#*-> } )
|
||||
done
|
||||
|
||||
for ((i=0; i<$n_step; i++)); do
|
||||
polymer_size=0
|
||||
while [ $polymer_size -lt ${#polymer} ]; do
|
||||
polymer_size=${#polymer}
|
||||
for rule in ${rules[@]}; do
|
||||
polymer=${polymer//${rule:0:2}/${rule:0:1}'|'${rule:3:1}'|'${rule:1:1}}
|
||||
done
|
||||
done
|
||||
polymer=${polymer//'|'/}
|
||||
done
|
||||
|
||||
occurences=( $(printf "%s\n" $(sed 's/\(.\)/\1 /g' <<< $polymer) | sort | uniq -c \
|
||||
| sort -nr | sed 's/.$//') )
|
||||
echo $((occurences[0]-occurences[-1]))
|
||||
Reference in New Issue
Block a user