Untitled
unknown
plain_text
3 years ago
914 B
9
Indexable
const solve = (input: string) => {
const rucksacks = input.split('\n');
// Find the item type that appears in both compartments of each rucksack
let sumOfPriorities = 0;
for (const rucksack of rucksacks) {
const firstCompartment = rucksack.substr(0, rucksack.length / 2);
const secondCompartment = rucksack.substr(rucksack.length / 2);
let commonItemType = null;
for (const itemType of new Set(firstCompartment)) {
if (secondCompartment.includes(itemType)) {
commonItemType = itemType;
break;
}
}
if (commonItemType) {
// Calculate the priority of the item type
const priority =
commonItemType.charCodeAt(0) >= 'a'.charCodeAt(0)
? commonItemType.charCodeAt(0) - 'a'.charCodeAt(0) + 1
: commonItemType.charCodeAt(0) - 'A'.charCodeAt(0) + 27;
sumOfPriorities += priority;
}
}
return sumOfPriorities;
};Editor is loading...