mirror of
https://github.com/SebastianStork/advent-of-code.git
synced 2026-01-21 16:51:34 +01:00
Add solution for day-01 part two
This commit is contained in:
parent
c22ac1e50f
commit
87c6c27c6d
1 changed files with 15 additions and 2 deletions
|
|
@ -33,12 +33,25 @@ int main()
|
||||||
sort(list1);
|
sort(list1);
|
||||||
sort(list2);
|
sort(list2);
|
||||||
|
|
||||||
|
// Part one
|
||||||
int totalDistance = 0;
|
int totalDistance = 0;
|
||||||
|
|
||||||
for (size_t i = 0; i < list1.size(); i++) {
|
for (size_t i = 0; i < list1.size(); i++) {
|
||||||
int distance = list1[i] - list2[i];
|
int distance = list1[i] - list2[i];
|
||||||
totalDistance += (distance >= 0) ? distance : -distance;
|
totalDistance += (distance >= 0) ? distance : -distance;
|
||||||
}
|
}
|
||||||
|
|
||||||
cout << "Total distance between the lists: " << totalDistance << endl;
|
cout << "Total distance between the lists: " << totalDistance << endl;
|
||||||
|
|
||||||
|
// Part two
|
||||||
|
int similarityScore = 0;
|
||||||
|
size_t index2 = 0;
|
||||||
|
for (size_t index1 = 0; index1 < list1.size(); index1++) {
|
||||||
|
while ((index2 < list2.size()) && (list1[index1] > list2[index2])) {
|
||||||
|
index2++;
|
||||||
|
}
|
||||||
|
while ((index2 < list2.size()) && (list1[index1] == list2[index2])) {
|
||||||
|
similarityScore += list2[index2];
|
||||||
|
index2++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
cout << "Similarity Score: " << similarityScore << endl;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue