Array Conversion

Description


Given an array of 2k integers (for some integer k), perform the following operations until the array contains only one element:

  • On the 1st, 3rd, 5th, etc. iterations (1-based) replace each pair of consecutive elements with their sum;
  • On the 2nd, 4th, 6th, etc. iterations replace each pair of consecutive elements with their product.

After the algorithm has finished, there will be a single element left in the array. Return that element.

Example

For inputArray = [1, 2, 3, 4, 5, 6, 7, 8], the output should be arrayConversion(inputArray) = 186.

We have [1, 2, 3, 4, 5, 6, 7, 8] -> [3, 7, 11, 15] -> [21, 165] -> [186], so the answer is 186.

Input/Output

  • [execution time limit] 4 seconds (js)

  • [input] array.integer inputArray

    Guaranteed constraints:
    1 ≤ inputArray.length ≤ 27,
    -100 ≤ inputArray[i] ≤ 100.

  • [output] integer

[JavaScript (ES6)] Syntax Tips

1
2
3
4
5
6
// Prints help message to the console
// Returns a string
function helloWorld(name) {
console.log("This prints to the console when you Run Tests");
return "Hello, " + name;
}

Solution


1
2
3
4
5
6
7
8
9
10
11
12
13
function arrayConversion(inputArray) {
  var tmp = [];
  var j = 0;
  while (inputArray.length > 1) {
    tmp = [];
    for (var i = 0; i < inputArray.length; i += 2) {
      tmp.push(inputArray.slice(i, i + 2));
    }
    inputArray = tmp.map(pair => (j ? pair[0] * pair[1] : pair[0] + pair[1]));
    j = (j + 1) % 2;
  }
  return inputArray[0];
}