Added solutions

This commit is contained in:
Clement Chiew
2024-12-03 10:14:09 +08:00
parent c344a2d05e
commit 7fd2536a85
8 changed files with 2143 additions and 0 deletions

1000
2024/day-1/input.txt Normal file

File diff suppressed because it is too large Load Diff

10
2024/day-1/solution-1.sh Normal file
View File

@ -0,0 +1,10 @@
#!/usr/bin/env bash
INPUT_FILE=input.txt
paste \
<(awk '{print $1}' $INPUT_FILE | sort -n ) \
<(awk '{print $2}' $INPUT_FILE | sort -n ) |
awk '{ $1 > $2 ? diff = ($1 - $2) : diff = ($2 - $1) ; print diff}' |
paste -s -d "+" |
bc

8
2024/day-1/solution-2.sh Normal file
View File

@ -0,0 +1,8 @@
#!/usr/bin/env bash
join -1 2 -2 2 \
<( awk '{print $2}' input.txt | sort -n | uniq -c ) \
<( awk '{print $1}' input.txt | sort -n | uniq -c ) |
awk '{print $1 * $2 * $3 }' |
paste -s -d "+" |
bc

Binary file not shown.

1000
2024/day-2/input.txt Executable file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,46 @@
#!/usr/bin/env awk
BEGIN {
safe = 0
}
{
if ($2 > $1) {
order = 0
} else {
order = 1
}
skip = 0
for (i = 1; i < NF; i++) {
j = i + 1
k = i + 2
if ( $i < $j && order == 1 ) {
if ( $i < $k && order == 1 ) {
next
}
} else if ( $i > $j && order == 0) {
if ( $i > $k && order == 0 ) {
next
}
}
if ( $i < $j ) {
diff = $j - $i
} else {
diff = $i - $j
}
if ( $i < $k ) {
diff2 = $k - $i
} else {
diff2 = $i - $k
}
if (diff > 3 || diff < 1) {
if (diff2 > 3 || diff2 < 1) {
next
}
}
}
safe += 1
}
END {
print safe
}

47
2024/day-2/solution-2.awk Normal file
View File

@ -0,0 +1,47 @@
#!/usr/bin/env awk
BEGIN {
# Initialize number of lines counter
safe = 0
}
{
if ($2 > $1) {
order = 0
} else {
order = 1
}
skip = 0
for (i = 1; i < NF; i++) {
j = i + 1
k = i + 2
if ( $i < $j && order == 1 ) {
if ( $i < $k && order == 1 ) {
next
}
} else if ( $i > $j && order == 0) {
if ( $i > $k && order == 0 ) {
next
}
}
if ( $i < $j ) {
diff = $j - $i
} else {
diff = $i - $j
}
if ( $i < $k ) {
diff2 = $k - $i
} else {
diff2 = $i - $k
}
if (diff > 3 || diff < 1) {
if (diff2 > 3 || diff2 < 1) {
next
}
}
}
safe += 1
}
END {
print safe
}

32
2024/day-2/solution.awk Normal file
View File

@ -0,0 +1,32 @@
#!/usr/bin/env awk
BEGIN {
safe = 0
}
{
if ($2 > $1) {
order = 0
} else {
order = 1
}
for (i = 1; i < NF; i++) {
j = i + 1
if ( $i < $j && order == 1 ) {
next
} else if ( $i > $j && order == 0) {
next
}
if ( $i < $j ) {
diff = $j - $i
} else {
diff = $i - $j
}
if (diff > 3 || diff < 1) {
next
}
}
safe += 1
}
END {
print safe
}