Skip to content

bhalash/triangutron

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

A max-path-value solver for Project Euler problems #18 and #67.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published