triangutron

1.1.5 • Public • Published

Build Status devDependencies Status

Triangutron

Triangutron is a functionally-programmed max-path-value solver for Project Euler's eighteenth and sixty-seventh problems.

The two problems require the triangle be reduced to a single maximum value in an efficient manner. This code does so by reducing the triangle from the last row to the first, increasing the max value as it ascends.

If you ever get bored, you can also generate your own triangles of arbitrary-size. A 100-row triangle? Psh! What about 5000 rows?

Installation

npm install triangutron

Testing

npm run test

Usage

(This also solves problems 18 and 67.)

#!/usr/bin/env node
const triangutron = require('triangutron');
const fs = require('fs');

const eighteen = `
    75
    95 64
    17 47 82
    18 35 87 10
    20 04 82 47 65
    19 01 23 75 03 34
    88 02 77 73 07 63 67
    99 65 04 28 06 16 70 92
    41 41 26 56 83 40 80 70 33
    41 48 72 33 47 32 37 16 94 29
    53 71 44 65 25 43 91 52 97 51 14
    70 11 33 28 77 73 17 78 39 68 17 57
    91 71 52 38 17 14 91 43 58 50 27 29 48
    63 66 04 68 89 53 67 30 73 16 69 87 40 31
    04 62 98 27 23 09 70 98 73 93 38 53 60 04 23
`;

fs.readFile('./p067_triangle.txt', 'utf8', (_, data) => {
    // Solution for Problem #67.
    console.log(triangutron.max(triangutron.fromString(data)));
});

// Solution for problem #18.
console.log(triangutron.max(triangutron.fromString(eighteen)));

// Create and reduce a 5000-row triangle.
console.log(triangutron.max(triangutron.create(5000)));

Copyright

Copyright (c) 2016 Mark Grealish. See LICENSE for details.

Readme

Keywords

none

Package Sidebar

Install

npm i triangutron

Weekly Downloads

1

Version

1.1.5

License

MIT

Last publish

Collaborators

  • bhalash