* feat(tools): add seed/solution restore script * chore(curriculum): remove empty sections' markers * chore(curriculum): add seed + solution to Chinese * chore: remove old formatter * fix: update getChallenges parse translated challenges separately, without reference to the source * chore(curriculum): add dashedName to English * chore(curriculum): add dashedName to Chinese * refactor: remove unused challenge property 'name' * fix: relax dashedName requirement * fix: stray tag Remove stray `pre` tag from challenge file. Signed-off-by: nhcarrigan <nhcarrigan@gmail.com> Co-authored-by: nhcarrigan <nhcarrigan@gmail.com>
1.3 KiB
1.3 KiB
id, title, challengeType, forumTopicId, dashedName
id | title | challengeType | forumTopicId | dashedName |
---|---|---|---|---|
5900f3bb1000cf542c50fece | Problem 79: Passcode derivation | 5 | 302192 | problem-79-passcode-derivation |
--description--
A common security method used for online banking is to ask the user for three random characters from a passcode. For example, if the passcode was 531278, they may ask for the 2nd, 3rd, and 5th characters; the expected reply would be: 317.
The array, keylog
, contains fifty successful login attempts.
Given that the three characters are always asked for in order, analyze the array so as to determine the shortest possible secret passcode of unknown length.
--hints--
passcodeDerivation(keylog)
should return a number.
assert(typeof passcodeDerivation(keylog) === 'number');
passcodeDerivation(keylog)
should return 73162890.
assert.strictEqual(passcodeDerivation(keylog), 73162890);
--seed--
--seed-contents--
function passcodeDerivation(arr) {
return true;
}
// Only change code above this line
const keylog = [
319,680,180,690,129,620,762,689,762,318,368,710,720,710,629,168,160,689,716,731,736,729,316,729,729,710,769,290,719,680,318,389,162,289,162,718,729,319,790,680,890,362,319,760,316,729,380,319,728,716,
];
passcodeDerivation(keylog);
--solutions--
// solution required