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.

    Keywords

    none

    Install

    npm i triangutron

    DownloadsWeekly Downloads

    1

    Version

    1.1.5

    License

    MIT

    Last publish

    Collaborators

    • bhalash