## DEV Community 👩‍💻👨‍💻 is a community of 919,526 amazing developers

We're a place where coders share, stay up-to-date and grow their careers. # Road to Genius: superior #59

Each day I solve several coding challenges and puzzles from Codr's ranked mode. The goal is to reach genius rank, along the way I explain how I solve them. You do not need any programming background to get started, and you will learn a ton of new and interesting things as you go.

``````function RPN(tokens) {
const stack = [];
for (let index = 0; index < tokens.length; index++) {
const token = tokens[index];
if (!Number.isNaN(Number(token))) {
stack.push(token);
} else {
const a = Number(stack.pop());
const b = Number(stack.pop());
if (token === '*') {
stack.push(b * a);
} else if (token === '/') {
stack.push(b / a);
} else if (token === '+') {
stack.push(b + a);
} else if (token === '-') {
stack.push(b - a);
}
}
}
return stack.pop();
}

let arr = ['1', '8', '5', '6', '+', '5', '*', '/', '*', '6', '+', '7', '+']
let A = RPN(arr);
A = Math.floor(A)

// A = ? (number)
``````

Our good old friend the Reverse Polish Notation (RPN) is back again. To complete the challenge we have to solve the notation, let's do that in pseudo-code:

``````arr = 1 8 5 6 + 5 * / * 6 + 7 +
stack = []

index: 0, 1, 2 & 3
stack = [1 8 5 6]

index: 4
token: +
push(5 + 6 = 11)
stack = [1 8 11]

index: 5
stack = [1 8 11 5]

index: 5
token: *
push(11 * 5 = 55)
stack = [1 8 55]

index: 6
token: /
push(8 / 55 = 0.145)
stack = [1 0.145]

index: 7
token: *
push(0.145 * 1 = 0.145)
stack = [0.145]

index: 8
stack = [0.145 6]

index: 9
token: +
push(0.145 + 6 = 6.145)
stack = [6.145]

index: 10
stack = [6.145 7]

index: 11
token: +
push(6.145 + 7 = 13.145)
stack = [13.145]

A = Floor(stack.pop())
A == 13
`````` By solving these challenges you train yourself to be a better programmer. You'll learn newer and better ways of analyzing, debugging and improving code. As a result you'll be more productive and valuable in business. Get started and become a certified Codr today at https://nevolin.be/codr/

## Hacktoberfest is happening now!

It is a month-long celebration of open source. For a lot of devs, its their introduction to open source.

Check out the Hacktoberfest tag on DEV to keep up with the latest!