# Alternative solution to Project Euler Problem 15

## Rearranging the problem

My solution uses a little bit of combinatorics.

First of all, the problem says that your starting position is at the top left corner of a square grid of dimension N and you want to reach the bottom right corner.
In order to do so, you are allowed to move a step at a time only down or right.

That’s been said, notice that every route is has 2N steps (N right and N down).
You can rearrange this problem into another one:

• You have 2N elements to order
• The 2N elements are divided in two sets of N elements each
• Elements of the same sets are interchangeble

In mathematical terms, the number of possibilities that you have to order this 2N elements is

Possibilities = (2N)! / (N!)^2

## Code

Summary
``````function factorial(n){
var factorial = 1;

for (var i = 1; i <= n; i++){
factorial *= i;
}
return factorial;
}

function latticePaths(gridSize) {

var nroutes = (factorial(2*gridSize))/( (factorial(gridSize))**2 )

return nroutes;
}
``````

Challenge: Problem 15: Lattice paths