Dominik Bulaj
1 min readJan 23, 2020

--

My 1st problem solution:

const solution = str => str.split('')
.reduce((prev, curr) => {
let lastLetter = prev.slice(-1)[0]
if (lastLetter && lastLetter.letter === curr) {
return [
...prev.slice(0, -1),
{
...lastLetter,
count: lastLetter.count + 1,
},
]
}

return [
...prev,
{ letter: curr, count: 1 },
]
}, [])
.map(val => val.letter.repeat(val.count > 2 ? 2 : val.count))
.join('')

2nd problem solution:

const solution = arr => {
const numbersMap = arr.reduce((prev, curr) => {
const sum = sumDigits(curr)
if (prev[sum]) {
prev[sum].push(curr)
return prev
}

return {
...prev,
[sum]: [curr],
}
}, {})

let sums = []
Object.values(numbersMap)
.map(numbers => {
if (numbers.length === 2) {
sums.push(sumNumbers(numbers))
}
if (numbers.length > 2) { // find two greatest
const greatest = numbers.sort()
.slice(-2)
sums.push(sumNumbers(greatest))
}
})

if (sums.length === 1) {
return sums[0]
}

if (sums.length > 1) {
return Math.max(...sums)
}

return -1
}

3rd problem solution — coming soon

--

--

Dominik Bulaj
Dominik Bulaj

Written by Dominik Bulaj

web developer // cycling addicted

No responses yet