Advent of Code - Day 2

by Uzair Mehmood

HTML

<textarea placeholder="enter input here" rows="10" cols="50"></textarea>
<p> </p>

JavaScript

$('textarea').change(function () {

  var dimensions = $('textarea').val().split('\n');
  var reqWrappingPaper = 0;
  var reqRibbon = 0;

  $.each(dimensions, function (i, box) {
    var numbers = box.split('x').map(Number);

    var l = numbers[0];
    var w = numbers[1];
    var h = numbers[2];

    var surfaceArea = 2 * l * w + 2 * w * h + 2 * h * l;
    var smallestSide = 0;

    var side1 = l * w;
    var side2 = w * h;
    var side3 = h * l;

    if (side1 <= side2 && side1 <= side3) {
      smallestSide = side1;
    } else if (side2 <= side1 && side2 <= side3) {
      smallestSide = side2;
    } else if (side3 <= side1 && side3 <= side2) {
      smallestSide = side3;
    }

    reqWrappingPaper += surfaceArea + smallestSide;

    var volume = l * w * h;
    var sorted = numbers.sort(function (a, b) {
      return a - b
    });
    reqRibbon += volume + 2 * (sorted[0] + sorted[1]);

  });

  $('p').html('Required Wrapping Paper : ' + reqWrappingPaper + ' Sq. Ft. <br> Required Ribbon : ' + reqRibbon + ' Ft.');


});