Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Clear&Readable solution in Clear category for [old] The Secret Room by SaintDron
"use strict";
function secretRoom(number) {
const TWENTY = ['', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine',
'ten', 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', 'sixteen', 'seventeen', 'eighteen', 'nineteen'];
const DOZENS = ['', '', 'twenty', 'thirty', 'forty', 'fifty', 'sixty', 'seventy', 'eighty', 'ninety'];
const inWords = (number) => (number == 1000) ? 'one thousand' :
(number >= 100) ? TWENTY[number / 100 | 0] + ' hundred ' + inWords(number % 100) :
(number >= 20) ? DOZENS[number / 10 | 0] + ' ' + inWords(number % 10) :
TWENTY[number];
return [...Array(number + 1).keys()].map(inWords).sort().indexOf(inWords(number));
}
var assert = require('assert');
if (!global.is_checking) {
console.log('Example:')
console.log(secretRoom(5))
// These "asserts" are used for self-checking and not for an auto-testing
assert.equal(secretRoom(5), 1) //five, four, one, three, two
assert.equal(secretRoom(3), 2) //one, three, two
assert.equal(secretRoom(1000), 551)
console.log("Coding complete? Click 'Check' to earn cool rewards!");
}
Sept. 12, 2018
Comments: