X-Git-Url: https://git.sommitrealweird.co.uk/advent-of-code-2019.git/blobdiff_plain/8d19ec771c083ce8bbfff9b075d42f15ad704831..24a0a2360eb2e4b4332ce45ba5888e72f970428a:/day4/get_valid_passwords.sh?ds=sidebyside diff --git a/day4/get_valid_passwords.sh b/day4/get_valid_passwords.sh deleted file mode 100644 index 9dd1562..0000000 --- a/day4/get_valid_passwords.sh +++ /dev/null @@ -1,110 +0,0 @@ -#!/bin/bash - -start_password=254032 -end_password=789860 - -check_valid_1() { - cur_password=$1 - last_val=${cur_password:0:1} - val=$last_val - got_dupe=0 - if [ $cur_password -ge $start_password ] && [ $cur_password -le $end_password ]; then - for (( a=1; a<${#cur_password}; a++ )); do - val=${cur_password:$a:1} - if [ $val -ge $last_val ]; then - if [ $val -eq $last_val ]; then - got_dupe=1 - fi - else - return 1 - fi - last_val=$val - done - if [ $got_dupe -eq 1 ]; then - return 0 - fi - else - return 1 - fi - - return 1 -} - -check_valid_2() { - cur_password=$1 - last_val=${cur_password:0:1} - val=$last_val - dupe_count=1 - got_dupe=0 - if [ $cur_password -ge $start_password ] && [ $cur_password -le $end_password ]; then - for (( a=1; a<${#cur_password}; a++ )); do - val=${cur_password:$a:1} - if [ $val -ge $last_val ]; then - if [ $val -eq $last_val ]; then - dupe_count=$((dupe_count+1)) - else - # only pairs - if [ $dupe_count -eq 2 ]; then - got_dupe=1 - fi - dupe_count=1 - fi - else - return 1 - fi - last_val=$val - done - if [ $dupe_count -eq 2 ]; then - got_dupe=1 - fi - if [ $got_dupe -eq 1 ]; then - return 0 - else - return 1 - fi - else - return 1 - fi - - return 1 -} - -get_next() { - password=$1 - temp_password=$((password+1)) - last_val=${temp_password:0:1} - new_password="$last_val" - for (( a=1; a<${#temp_password}; a++ )); do - val=${temp_password:$a:1} - if [ $val -lt $last_val ]; then - val=$last_val - fi - new_password+=$val - last_val=$val - done - - echo "$new_password" -} - -cur_password=$start_password -valid_passwords=0 -valid_passwords_2=0 -while [ $cur_password -le $end_password ]; do - echo -n "$cur_password: " - if ( check_valid_1 $cur_password ); then - echo -n valid - valid_passwords=$((valid_passwords+1)) - if ( check_valid_2 $cur_password ); then - echo " valid" - valid_passwords_2=$((valid_passwords_2+1)) - else - echo " invalid" - fi - else - echo invalid - fi - cur_password=$(get_next $cur_password) -done - -echo "There are $valid_passwords valid passwords" -echo "And $valid_passwords_2 really valid passwords"