Skip to main content
3 of 4
added 9 characters in body
Ry-
  • 5.4k
  • 1
  • 24
  • 32

JavaScript (node.js)

Counts what was most popular last round and bids one less than that, wrapping to 20 and bidding 3 on the first round.

var lastRound = process.argv[2];
var numbers = {};
var matches = /\d+/g.exec(/[^\n]+$/.exec(lastRound));
var i;

for(i = 0; i < matches.length; i++) {
    if(matches[i] in numbers) {
        numbers[i]++;
    } else {
        numbers[i] = 1;
    }
}

var maxKey = -1, maxValue = -1;

for(i in numbers) {
    if(numbers[i] > maxValue) {
        maxKey = i;
        maxValue = numbers[i];
    }
}

if(maxKey == 0) {
    // First round. Bid 3.
    console.log(3);
} else if(maxKey == 1) {
    // Bid 20.
    console.log(20);
} else {
    // Bid one less.
    console.log(maxKey - 1);
}

How to invoke:

node script.js 'the argument'
Ry-
  • 5.4k
  • 1
  • 24
  • 32